Bir select case ifadesi, bir değişkenin bir değerler listesine karşı eşitlik açısından test edilmesine izin verir. Her değere bir durum adı verilir ve üzerinde seçilen değişken her biri için kontrol edilir.select case.
Sözdizimi
İçin sözdizimi select case yapı aşağıdaki gibidir -
[name:] select case (expression)
case (selector1)
! some statements
... case (selector2)
! other statements
...
case default
! more statements
...
end select [name]
Aşağıdaki kurallar bir select ifade -
Bir select deyiminde kullanılan mantıksal ifade, mantıksal, karakter veya tam sayı (ancak gerçek değil) ifade olabilir.
Bir seçim içinde istediğiniz sayıda vaka ifadesine sahip olabilirsiniz. Her durumu, karşılaştırılacak değer izler ve mantıksal, karakter veya tam sayı (ancak gerçek değil) ifade olabilir ve hangi ifadelerin yürütüleceğini belirler.
Bir vakanın sabit ifadesi, seçmedeki değişkenle aynı veri türünde olmalı ve sabit veya değişmez olmalıdır.
Üzerinde seçilen değişken bir vakaya eşit olduğunda, bu vakayı izleyen ifadeler bir sonraki case ifadesine ulaşılana kadar çalışacaktır.
Durum varsayılan bloğu, seçili durumdaki (ifade) ifade seçicilerden hiçbiriyle eşleşmezse yürütülür.
Akış diyagramı
örnek 1
program selectCaseProg
implicit none
! local variable declaration
character :: grade = 'B'
select case (grade)
case ('A')
print*, "Excellent!"
case ('B')
case ('C')
print*, "Well done"
case ('D')
print*, "You passed"
case ('F')
print*, "Better try again"
case default
print*, "Invalid grade"
end select
print*, "Your grade is ", grade
end program selectCaseProg
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Your grade is B
Seçici için Aralık Belirtme
İki nokta üst üste ile ayrılmış bir alt ve üst sınır belirleyerek seçici için bir aralık belirtebilirsiniz -
case (low:high)
Aşağıdaki örnek bunu göstermektedir -
Örnek 2
program selectCaseProg
implicit none
! local variable declaration
integer :: marks = 78
select case (marks)
case (91:100)
print*, "Excellent!"
case (81:90)
print*, "Very good!"
case (71:80)
print*, "Well done!"
case (61:70)
print*, "Not bad!"
case (41:60)
print*, "You passed!"
case (:40)
print*, "Better try again!"
case default
print*, "Invalid marks"
end select
print*, "Your marks is ", marks
end program selectCaseProg
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Well done!
Your marks is 78