2016-03-20 5 views
1

ちょっと私のケースステートメントに整数を入力すると正しい出力が得られますが、文字列を入力するたびに同じ結果が得られます。ケースステートメントは1つの条件しか実行しません

 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'は整数をテストします。 And Andの代わりに 'And 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 
関連する問題