2012-04-06 2 views
-2

をカウントするVB.NETでの条件文を使用すると、ここでは複数のカウンタは、私は窓にプログラムを実行しています

をしようとしてVisual Basicとイムを形成して私のコードです:

If txtAnswer.Text = nMathSum Then 
     nCount = nCount + 1 
     lblCorrect.Text = nCount 
    ElseIf txtAnswer.Text <> nMathSum Then 
     nIount = nIount + 1 
     lblIncorrect.Text = nIount 
    End If 

    If txtAnswer.Text = nMathDiff Then 
     nCount = nCount + 1 
     lblCorrect.Text = nCount 
    ElseIf txtAnswer.Text <> nMathDiff Then 
     nIcount = nIcount + 1 
     lblIncorrect.Text = nIout 
    End If 

それはどのように多くカウントすると仮定回私は正しく、間違って答えた

合計のカウンターはうまくいきますが、違いのカウンターに問題があります。 正しい答えを入力すると、間違ったラベルになります。

+5

nIountとnIcount?これはあなたが奇妙な識別子の名前を選ぶときに起こります。バグのないコードを書くのに役立つものは、GoodAnswerCountとBadAnswerCountです。 –

+0

これは:nIount、nIcountまたはnIoutですか? Hans Passantが正しいです:より良い識別子の名前を使用してください! – mjv

答えて

0

txtAnswerが合計と差異の両方に一致することはほとんどありません。だから、あなたのコードでは、あなたは常にそれらのうちの少なくとも1つが間違っているでしょう。

txtAnswerが合計または差異と一致するかどうかを知る方法がありますか?その場合は、答えを確認する前に確認してください。

EDIT(私が何を意味するかを説明するために):操作は「+」に設定されている変数であるか

If operation = "+" Then 
    If txtAnswer.Text = nMathSum Then 
     nCount = nCount + 1 
     lblCorrect.Text = nCount 
    ElseIf txtAnswer.Text <> nMathSum Then 
     nIcount = nIcount + 1  ' corrected this line to use nIcount 
     lblIncorrect.Text = nIcount ' corrected this line to use nIcount 
    End If 
Else 
    If txtAnswer.Text = nMathDiff Then 
     nCount = nCount + 1 
     lblCorrect.Text = nCount 
    ElseIf txtAnswer.Text <> nMathDiff Then 
     nIcount = nIcount + 1 
     lblIncorrect.Text = nIcount ' corrected this line too 
    End If 
End If 

よう何か「 - 」ユーザーが提供することになっているかどうかに応じて、合計または差。

+0

私は合計と違いをチェックする方法がないと思います。あなたは私にそれをする方法を教えてくれますか?私は本当にこのプログラムを終了する必要があります – pxtoxp

+0

あなたがチェックの方法がない場合、あなたを助ける方法はありません。ユーザーは合計額と差額を提供しているかどうかをどのように知っていますか?それが何であれ、同じことを使って、どの答えをチェックするかを理解する。 –

+0

は、あなたがチェックすることにより、何を意味するか、このです: txtAnswer.Text = nMathSum場合、 MessageBox.Show( "正しい、いい仕事"、 "あなたの答えはある"、MessageBoxButtons.OK、MessageBoxIcon.Asterisk) のElseIf txtAnswer.Text < > nMathSum Then MessageBox.Show(「間違っている、再試行する」、「あなたの答えは」、MessageBoxButtons.OK、MessageBoxIcon.Error) 終了の場合 終了の場合 – pxtoxp

0

あなたは最後の行でnIoutとしてもseconf ElseifnIcountとしてnIountのスペルミスを持っています。

ElseIf txtAnswer.Text <> nMathDiff Then 
    nIount = nIount + 1 
    lblIncorrect.Text = nIount 
End If 

これは最初の外観(nIount)を想定しているが、正しいスペルである:としてそれを修正。

+0

VB.Netでは大文字と小文字が区別されません。これは、コピーして貼り付けるのではなく、単に質問に入力したコードでなければなりません。 IDEは自動的に識別子名を修正します。 –

+0

大文字と小文字は区別されません。問題のコードには 'nIount'、' nIcount'と 'nIout'があります。おそらくはそのうちの1つ(最大で2つ)だけが正しいでしょう。 – Attila

+0

あなたはそうだ、私はそれを逃した。 –

関連する問題