2016-03-20 25 views
1

hey benim durum bildirimi içine bir tamsayı girdiğimde doğru çıktıyı üretiyor ancak bir dizeyle her seferinde aynı sonucu veriyor, siz herhangi bir çözümü biliyor musunuz?Durum bildirimi sadece bir koşulu çalıştırıyor

 Select Case Grades.Text 
     Case = "A*" 
      score = score + 100 
      MessageBox.Show("You entered an A*") 
      Gcount = Gcount + 1 

     Case >= 90 
      score = score + 100 
      MessageBox.Show("You entered an A*") 
      Gcount = Gcount + 1 

     Case = "A" 
      score = score + 85 
      MessageBox.Show("You entered an A") 
      Gcount = Gcount + 1 
      MessageBox.Show(Gcount) 

     Case < 90 And Grades.Text >= 80 
      score = score + 85 
      MessageBox.Show("You entered an A") 
      Gcount = Gcount + 1 
      MessageBox.Show(Gcount) 

     Case = "B" 
      score = score + 75 
      MessageBox.Show("You entered a B") 
      Gcount = Gcount + 1 
      MessageBox.Show(score) 

     Case < 80 And Grades.Text >= 70 
      score = score + 75 
      MessageBox.Show("You entered a B") 
      Gcount = Gcount + 1 

     Case = "C" 
      score = score + 65 
      MessageBox.Show("You entered a C") 
      Gcount = Gcount + 1 

     Case < 70 And Grades.Text >= 60 
      score = score + 65 
      MessageBox.Show("You entered a C") 
      Gcount = Gcount + 1 
+1

gibi bir yolu yoktur. 'Case Grades.Text' seçeneği bir dizge verirken, Case (70) bir tam sayıyı test ediyor. AndAlso 'AndAlso' yerine 'Ve' – Plutonix

+0

kullanın 'Ve' ve' AndAlso' gibi bir Select Case deyiminde kullanamazsınız. –

+0

Hatalı, hala basit bir kod için (bu durumda) Bunun yerine bir "If" ifadesi kullanmanız gerektiğini düşünüyorum. –

cevap

-1

bu deneyin:

Select Case Grades.Text 
     Case Is >= 90 
      MessageBox.Show("You entered an A*") 
     Case Is < 90 And Grades.Text >= 80 
      MessageBox.Show("You entered an A") 
     Case Is < 80 And Grades.Text >= 70 
      MessageBox.Show("You entered a B") 
     Case Is < 70 And Grades.Text >= 60 
      MessageBox.Show("You entered a C") 
    End Select 
+0

Çalışmıyor, böyle bir Select Case deyiminde 'And' veya' AndAlso' kullanılamaz. 'Ve' bitsel bir işlem yapacak ve 'AndAlso'' 'True' veya' False'' iadesi yapacak. Ve "Grades.Text" muhtemelen muhtemelen "" True "dizgesini değerlendiremeyeceği için bu işe yaramayacaktır. –

0

Sen Seçeneği katı On belirlesin.

Yani Sıkı Seçeneği kullanarak derlemek değil gerektiğini bu

Select case True 
    Case intVariable <= 90 
    ' do something... 
    Case 91 < intVariable AndAlso intVariable <= 100 
    ' do something... 
    Case 100 < intVariable AndAlso intVariable <= 110 
    ' do something... and so on 
End Select