第4講 If文の学習

第2話 If文の簡単なサンプルソフト

まず、第2話で簡単なサンプルソフトを作り、話の進行とともにソフトを高度化していきましょう。
最終的には、成績一覧表を作り、合格・不合格や5段階ぐらいの講評を入れていくことにしたいと思います。

まず、
つぎのようなForm1を作ってください。
入門
そして、実行をダブルクリックして、次のようにコーティングしましょう。
Pubic Cass Form1

   Private Sub Button1_Cick(ByVa sender As System.Object, ByVa e As System.EventArgs) Handes Button1.Cick
     '変数の宣言
     Dim a As Integer

     'TextBox1から値を取得
     a = TextBox1.Text

     '合否判定
     If a >= 80 Then
       TextBox2.Text = "合格"
     End If

   End Sub
End Cass
Visua Basicには≦や≧がありませんので、<=と>=で代用します。
この辺はVisua Basicやパスカルでも共通ですから、おそらくプログラム言語一般でそうなっていると思われます。
もっとも、パスカルを勉強していたのは今から20年ぐらい前ですから記憶は曖昧ですが。

これは、TextBox1に入力される値が80以上なら合格と表示させるプログラムです。

F5を押して、0から100ぐらいまでの整数をキーボードからTextBox1に入力してから実行ボタンを押してください。
実行結果例
初心者
ところが、このコーティングだと80未満が入力されたとき、実行を押しても何も表示されません。
入門
さらに、80を入力して実行ボタンを押してから80を消して、70と入れ直し実行ボタンを押すと、
基礎
70なのに合格と表示されてしまいます。これは、80と入力され実行されたときに合格と表示されたのがそのまま残っているからです。
この欠点を改善するには、
     If a >= 80 Then
       TextBox2.Text = "合格"
     End If

     If a >= 80 Then
       TextBox2.Text = "合格"
     Else
       TextBox2.Text = "不合格"
     End If
とします。

1つ重大な話を落としていました。
コードを変更するときには、必ず起動中のソフト(自分でビルドして立ち上げたソフト)は終了してからにしてください。
ソフトが立ち上がったままだと、コードの変更が反映されません。
また、Form1[デザイン]は変更することができません。

さて、If文の記入の仕方ですが、
If a >= 80 Then
  TextBox2.Text = "合格"
Else
  TextBox2.Text = "不合格"
End If

If a >= 80 Then
TextBox2.Text = "合格"
Else
TextBox2.Text = "不合格"
End If
と書いてもエラーしませんが、
もちろんよい書き方は、前者
If a >= 80 Then
  TextBox2.Text = "合格"
Else
  TextBox2.Text = "不合格"
End If
の方です。意味のまとまりごと、段組をする、1行あけるなどプログラムが見やすくなるように心がけてください。
その心がけも構造化プログラミングの思想の一つといえます。


命令文が1文しかないときには、
If a >= 80 Then TextBox2.Text = "合格" Else TextBox2.Text = "不合格"
If a >= 80 Then TextBox2.Text = "合格"
のように書きます。
命令が複数になり、2行以上になるときは
If 条件式 Then
  A
  B
  C
End If
必ずEnd IfでIf文を閉めないとエラーします。
しかし、1行のときは
命令文が複数のときには、End Ifを入れると逆にエラーします。

If a >= 80 Then TextBox2.Text = "合格" Else TextBox2.Text = "不合格"
は面倒でも
If a >= 80 Then
  TextBox2.Text = "合格"
Else
  TextBox2.Text = "不合格"
End If
と書くことをお勧めします。

わかりやすさ優先の姿勢が大切です。

正確に表示されないという問題の改善策の1つがIf...Else...文でした。
実は、If...Else...文を使わないで、ただのIf文でも解決する方法があります。
本によっては、If...Else...文はプログラムをわかりにくくするので、
なるべく使わない方がよいとするものもあります。
では、皆さんIf文だけで先の問題を解決する方法を考えましょう。





第1話へ 第3話へ

006


VC++講義第1部へ
vb講義へ
VB講義基礎へ

数学研究室に戻る