2016-03-20 111 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