2016-03-20 108 views
1

嘿,當我在我的case語句中輸入一個整數時,它會產生正確的輸出,但是使用一個字符串,每次只產生相同的結果,你們是否知道任何解決方案?Case語句只運行一個條件

 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

使用選項嚴格了,不應該編譯的方式。 'Select Case Grades.Text'承諾一個字符串,而'Case <70'正在測試一個整數。並且使用'AndAlso'而不是'And' – Plutonix

+0

您不能在像這樣的Select Case語句中使用'And'和'AndAlso'。 –

+0

對於故障安全,仍然簡單的代碼(在這種情況下),我認爲你將不得不使用'If'語句來代替。 –

回答

-1

試試這個:

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

不行,不能在這樣的Select Case語句中使用'And'或'AndAlso'。 'And'將執行按位操作,'AndAlso'將返回'True'或'False'。而且由於'Grades.Text'可能永遠不會評估字符串'「True」'這是行不通的。 –

0

您應該設置選項嚴格上。

所以有這樣的

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