第4講 If文の学習
第4話 If...Else...文の入れ子式による4段階ないし5段階評価
4段階解答例その1
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'変数の宣言
Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer,
w As Integer
'TextBox1から値を取得
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
d = TextBox4.Text
f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。
'5教科合計を計算
w = a + b + c + d + f
'5教科合計を表示
TextBox6.Text = w
'合否の表示
If w >= 300 Then
TextBox7.Text = "合格"
Else
TextBox7.Text = "不合格"
End If
'講評の表示
If w >= 450 Then
TextBox8.Text = "超天才級"
Else
If w >= 380 Then
TextBox8.Text = "天才級"
Else
If w >= 300 Then
TextBox8.Text = "優秀です。"
Else
TextBox8.Text = "がんばりましょう"
End If
End If
End If
End Sub
End Class
[解説]
If w >= 450 Then
TextBox8.Text = "超天才級"
Else
If w >= 380 Then
TextBox8.Text = "天才級"
Else
If w >= 300 Then
TextBox8.Text = "優秀です。"
Else
TextBox8.Text = "がんばりましょう"
End If
End If
End If
今回もIf...Else...文について解説しておきましょう。
最初の
If w >= 450 Then
TextBox8.Text = "超天才級"
によって、450以上の場合にtextBox8に『超天才級』と表示されます。
次のElse文
Else
If w >= 380 Then
TextBox8.Text = "天才級"
Else
If w >= 300 Then
TextBox8.Text = "優秀です。"
Else
TextBox8.Text = "がんばりましょう"
End If
End If
End If
は450以上の否定で、450未満が対象になります。
すると、
If w >= 380 Then
TextBox8.Text = "天才級"
は、450未満で380以上が対象になります。
そして、次のElse文
Else
If w >= 300 Then
TextBox8.Text = "優秀です。"
Else
TextBox8.Text = "がんばりましょう"
End If
End If
では、380以上の否定=380未満が対象になります。
ですから、
If w >= 300 Then
TextBox8.Text = "優秀です。"
は380未満で300以上が対象になります。
最後のElse文
Else
TextBox8.Text = "がんばりましょう"
End If
は300以上の否定で300未満が対象になります。
4段階解答例その2(if文のみによる)
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'変数の宣言
Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer,
w As Integer
'TextBox1から値を取得
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
d = TextBox4.Text
f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。
'5教科合計を計算
w = a + b + c + d + f
'5教科合計を表示
TextBox6.Text = w
'合否の表示
If w >= 300 Then
TextBox7.Text = "合格"
Else
TextBox7.Text = "不合格"
End If
'講評の表示
If w >= 450 Then
TextBox8.Text = "超天才級"
End If
If w < 450 And w >= 380 Then
TextBox8.Text = "天才級"
End If
If w < 380 And w >= 300 Then
TextBox8.Text ="優秀です。
End If
If w < 300 Then
TextBox8.Text = "がんばりましょう"
End If
End Sub
End Class
5段階評価解答例その1
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'変数の宣言
Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer,
w As Integer
'TextBox1から値を取得
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
d = TextBox4.Text
f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。
'5教科合計を計算
w = a + b + c + d + f
'5教科合計を表示
TextBox6.Text = w
'合否の表示
If w >= 300 Then
TextBox7.Text = "合格"
Else
TextBox7.Text = "不合格"
End If
'講評の表示
If w >= 450 Then
TextBox8.Text = "超天才級"
Else
If w >= 380 Then
TextBox8.Text = "天才級"
Else
If w >= 300 Then
TextBox8.Text = "優秀です。"
Else
If w >= 280 Then
TextBox8.Text = "残念、後一歩でした。"
Else
TextBox8.Text = "残念"
End If
End If
End If
End If
End Sub
End Class
5段階解答例その2(If文のみによる)
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'変数の宣言
Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer,
w As Integer
'TextBox1から値を取得
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
d = TextBox4.Text
f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。
'5教科合計を計算
w = a + b + c + d + f
'5教科合計を表示
TextBox6.Text = w
'合否の表示
If w >= 300 Then
TextBox7.Text = "合格"
Else
TextBox7.Text = "不合格"
End If
'講評の表示
If w >= 450 Then
TextBox8.Text = "超天才級"
End If
If w < 450 And w >= 380 Then
TextBox8.Text = "天才級"
End If
If w < 380 And w >= 300 Then
TextBox8.Text ="優秀です。
End If
If w < 300And w >= 280 Then
TextBox8.Text ="残念、後一歩でした。"
End If
If w < 280 Then
TextBox8.Text = "残念"
End If
End Sub
End Class
では、次の課題です。
今回は手でいちいちデータを入れていますが、
実行ボタンを押すと自動的に5教科のデータも入って、
合計、合否判定、評価も出るように変更しましょう。
0以上100以下の整数をランダムに発生させるには、
a = Int(101 * Rnd())
とします。
Rndは1未満の小数をランダムに発生させるものです。すなわち、1未満の乱数の発生です。
それに101をかけることによって、101未満の実数を発生させます。
Int(*)は、*の小数部分を切り捨てて整数にする命令です。
したがって、 Int(101 * Rnd())は101未満の整数になります。