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