1
If txtNum1.Text <= 0 Or txtNum2.Text <= 0 Then
    lblResult.Text = "Result Error: Enter in a number graeter than zero"
End If

私はプログラミングが初めてです。いずれかのテキスト ボックスの数値が 0 以下の場合にエラー メッセージが表示され、クラッシュしないように、if/else ステートメントを作成しようとしています。

4

4 に答える 4

2

.Textプロパティの数値を整数として解析する必要があります。

あなたのIfステートメントは次のようになります

If Int32.Parse(txtNum1.Text) <= 0 ....

コードでその値を複数回再利用する予定がある場合は、変数で抽出できます。

また、コメントで指摘されているように、無効な番号を確認する必要がありますInt32.TryParse(value, number)。したがって、TryParse(..)メソッドが を返すfalse場合は、ケースを処理できます。

この方法がどのように機能するかを正確に知るには、これを読むことができます

しかし、迅速にするためにvalueは、解析したい文字列であり、文字列からnumber解析される整数値です。メソッド自体はboolean(解析に成功した場合は true、falseそれ以外の場合は true)を返します。

于 2013-09-29T17:40:08.733 に答える
2

文字列から数値への適切な変換を使用する

Dim res1 As Integer
Dim res2 as Integer

if Not Int.TryParse(txtNum1.Text, res1) then
   lblResult.Text = "Enter a valid first number "
   return
End If
if Not Int.TryParse(txtNum2.Text, res2) then
   lblResult.Text = "Enter a valid second number "
   return
End If

If res1 <= 0 OrElse res2 <= 0 Then
  lblResult.Text = "Result Error: Enter numbers greater than zero"
End If

ユーザー入力を数値に変換する必要があります。テキスト ボックスの Text プロパティは、数値ではなく文字列です。また、変換する場合は、不適切な入力 (数値以外の値など) を受け取る準備ができている必要があります。

最善の方法は、ユーザーが入力した値を数値に変換しようとする Int.TryParse を使用することです。失敗した場合は false を返します。成功した場合、変換された数値が 2 番目の引数で見つかります。

前者は短絡評価を使用するため、Or の代わりにOrElseを使用する必要があることにも注意してください。

エラー メッセージから明らかな別の落とし穴について警告したいと思います。VB コンパイラは、2 つの文字列を数値に変換する手助けをしようとしました。これは私の観点からは非常に悪いことです。コンパイラの自動変換を無効にして、この種の変換を処理する責任を負う必要があります。プロジェクト、ページCompile、およびセットのプロパティに移動しますthe Option Strict to ON。このようにして、コンパイラはこの自動変換を停止し、エラーとしてシグナルを送信します。textBox1.Text <= 0

于 2013-09-29T17:42:02.280 に答える
0

このようなものが良いでしょう、

int かどうかを確認してから、ゼロ以下かどうかを確認します

    Dim value1, value2 As Integer

    If not Integer.TryParse(txtNum1.text, value1) orelse value1 <= 0 OrElse not Integer.TryParse(txtNum2.text, value2) orelse value2 <= 0 Then
        lblResult.Text = "Result Error: Enter in a number graeter than zero"
    End If
于 2013-09-29T17:44:10.510 に答える
0

あなたの比較は正常に機能しません。同じ型 (文字列と整数) を使用していません。

コードは次のようになります。

dim n1 as integer
dim n2 as integer
if integer.tryparse(txtNum1.Text,n1) and integer.tryparse(txtnum2.text,n2) then
    If n1 <= 0 Or n2 <= 0 Then
        lblResult.Text = "Result Error: Enter in a number graeter than zero"
    End If
else
    lblResult.Text = "please input numbers"
end if
于 2013-09-29T17:45:05.947 に答える