Fortran - kasa yapısını seçin

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

Language