Ifステートメント
プログラムの中で、「条件」によって処理を切り替えたい場合、Ifステートメントを使う。
以下は、成績が 60点以上なら「合格」、60点未満なら「不合格」と表示するプログラムだ。
If Val(Textbox1.Text) >= 60 Then
Label1.Text = “合格”
Else
Label1.Text = “不合格”
End If
Val(Textbox1.Text)に成績が入力される。成績が60以上だったら「合格」、 そうでなければ「不合格」をLabel1.Textに表示する。
If ステートメントの形式
If 条件 Then 命令1 条件が成立する場合に実行される Else 命令2 条件が成立しない場合に実行される End If
練習4 問題2-1のプログラムで終了までの時間によって表示を以下のように変えてみよう。
(1) III限終了以前、(2:49より前)
III限終了まであと 00 分。
(2) III限終了以後(2:50以後)
III限終了、お疲れ様。
->答え
Ifステートメントの入れ子
If 条件1 Then 命令1 条件1が成立する場合に実行される Else If 条件2 命令2 条件1が成立しないで、条件2が成立する場合に実行される Else 命令3 条件1が成立しないで、条件2も成立しない場合に実行される End If End If Ifステートメントの終わりを表すキーワード
練習5 終了までの時間によって表示を以下のように変えてみよう。
(1) III限終了まで11分以上、(2:39より前)
III限終了まであと 00 分。まだまだ続く。
(2) III限終了まで10分以内、(時刻が2:40~2;49)
III限終了まであと 00 分。もう少しだ。
(3) III限終了以後(時刻が2:50以後)
III限終了、お疲れ様。
->答え
Ifステートメントの中の=(イコール)
Ifの中では=は「代入」ではなく「比較」の意味になる。
たとえば、
If d = 1 Then
は、「もしdが1と等しかったら?」という意味になる。
練習4の答え 問題2-1のプログラムで終了までの時間によって表示を以下のように変えてみよう。
(1) III限終了以前、(2:49より前)
III限終了まであと 00 分。
(2) III限終了以後(2:50以後)
III限終了、お疲れ様。
答え
Dim h,m,d
h = Val(TextBox1.Text)
m = Val(TextBox2.Text)
d = 2 * 60 + 50 - h * 60 - m
If (d >= 1) Then
Label1.Text = "III限終了まであと" & d & "分"
Else
Label1.Text = "III限終了、お疲れ様。"
EndIf
練習5 終了までの時間によって表示を以下のように変えてみよう。
(1) III限終了まで11分以上、(2:39より前)
III限終了まであと 00 分。まだまだ続く。
(2) III限終了まで10分以内、(時刻が2:40~2;49)
III限終了まであと 00 分。もう少しだ。
(3) III限終了以後(時刻が2:50以後)
III限終了、お疲れ様。
答え
Dim h,m,d,t
h = Val(TextBox1.Text)
m = Val(TextBox2.Text)
d = 2 * 60 + 50 - h * 60 - m
t = "III限終了まであと" & d & "分"
If (d >= 11) Then
Label1.text = t & " まだまだ続く。"
Else
If (d >= 1) Then
Label1.Text = t & " もう少しだ。"
Else
Label1.Text = "III限終了、お疲れ様。"
End If
End If