連続で偶数・奇数の判定をするには?

解決


のりだぁ=  2007-04-14 23:22:29  No: 136064

偶数・奇数を判定するプログラムを次のように書きました。
Option Strict On
Public Class Form1
    Inherits System.Windows.Forms.Form
(省略)
 Private Sub txtSuuti_TextChanged(By・・) Handles  txtSuuti.TextChanged
     Dim a As Integer
     a = CInt(txtSuuti.Text)
     If a Mod 2 = 0 Then
        txtHantei.Text = "偶数"
     ElseIf a Mod 2 = 1 Then
        txtHantei.Text = "奇数"
     End If
    End Sub
End Class

このコードだと、一回目はうまく判定出来ました。二度目を行おうと
数値のテキストボックスを空欄にし再入力しようとするとエラーが出
てしまいます。
判定ボタンを作り数値を変えてそのボタンを押すようにすれば、
いいのではないかとは思っていますが、そのようなボタンを
作らずとも今の状態で連続で出来る方法はないかと悩んでいます。
宜しくお願い致します。


ささ  2007-04-14 23:37:06  No: 136065

テキストに値が入っていること前提のコードになっているので
テキストが空白の場合を考慮すれば問題なくなりませんか?


かさのば  2007-04-15 11:13:52  No: 136066

ついでに数値チェックや桁数チェックとかも入れといたほうがイイかもね


魔界の仮面弁士  2007-04-15 22:06:40  No: 136067

TextBox.Text を利用するのではなく、
NumericUpDown.Value を使った方が楽かも。


ミネラル  2007-04-16 08:43:36  No: 136068

IsNumericという関数を使ってみてはどうでしょう。

Dim a As Integer

If IsNumeric(txtSuuti.Text) Then
    a = CInt(txtSuuti.Text)
    If a Mod 2 = 0 Then
        txtHantei.Text = "偶数"
    ElseIf a Mod 2 = 1 Then
        txtHantei.Text = "奇数"
    End If
Else
    txtHantei.Text = "数字ではありません。"
End If


のりだぁ=  2007-04-17 04:45:52  No: 136069

質問にお答え頂いた皆様ありがとうございました。お蔭様で問題を解決することが出来ました。NumericUpDown.Value を使っても作って見ました。
Option Strict On
(省略)
Private Sub NumericUpDown1_ValueChanged(ByVal・・) Handles numSuuti.ValueChanged
        Dim a As Decimal
        a = numSuuti.Value
        If a Mod 2 = 0 Then
            txtHantei.Text = "偶数"
        Else
            txtHantei.Text = "奇数"
        End If
    End Sub
End Class


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加