第4講 If文(もしもボックスの世界)
第9話 5段階判定プログラムをシンプルにする
実行画面が

   ・
   ・
出席番号=33
国語=11
社会=60
数学=25
理科=38
英語=49
合計点=183
出席番号33番はかなりの努力が必要です。

出席番号=34
国語=84
社会=96
数学=42
理科=3
英語=51
合計点=276
出席番号34番はそこそこ頑張りました。

出席番号=35
国語=92
社会=37
数学=75
理科=21
英語=97
合計点=322
出席番号35番はかなり頑張りました。
   ・
   ・
出席番号=37
国語=82
社会=35
数学=54
理科=100
英語=19
合計点=290
出席番号37番は頑張りました。

出席番号=38
国語=39
社会=1
数学=89
理科=28
英語=68
合計点=225
出席番号38番は努力が必要です。
   ・
   ・
となるソフトのコード例
Module Module1

  Sub Main() '私は社長だ。
    Dim s, a, b, c, d, e, g As Integer 's:出席番号 a:国語 b:社会 c:数学 d:理科 e:英語 g:合計
    Console.WriteLine ("各教科の点数をキーボードから入力して下さい。")
    For s = 1 To 40
      Console.WriteLine("出席番号={0:d}", s) '出席番号表示
      '以下各教科得点ランダム発生
      a = Int(Rnd() * 100) + 1
      b = Int(Rnd() * 100) + 1
      c = Int(Rnd() * 100) + 1
      d = Int(Rnd() * 100) + 1
      e = Int(Rnd() * 100) + 1
      '以上各教科得点ランダム発生
      g = a + b + c + d + e '合計点算出
      '以下各教科得点、合計点、合否結果の表示
      Console.WriteLine("国語={0:d}", a) '国語得点の表示
      Console.WriteLine("社会={0:d}", b) '社会得点の表示
      Console.WriteLine("数学={0:d}", c) '数学得点の表示
      Console.WriteLine("理科={0:d}", d) '理科得点の表示
      Console.WriteLine("英語={0:d}", e) '英語得点の表示
      Console.WriteLine("合計点={0:d}", g) '合計点の表示
      Console.Write("出席番号{0:d}番は", s)
      If g >= 300 Then Console.WriteLine ("かなり頑張りました。")
      If g < 300 And g >= 280 Then Console.WriteLine ("頑張りました。")
      If g < 280 And g >= 240 Then Console.WriteLine ("そこそこ頑張りました。")
      If g < 240 And g >= 200 Then Console.WriteLine ("努力が必要です。")
      If g < 200 Then Console.WriteLine ("かなりの努力が必要です。")
      Console.WriteLine()
    Next
  End Sub

End Module

ブロックのの入れ子が浅くなり、コードもかなり減りわかりやすくなりました。
人によっては
If g>=300 Then A Else B
でさえ使わない方が良いという人もいます。
否定文はわかりにくいというのがその理由です。
If else文を使わずに、
If g>=300 Then A
If g<300 Then B
にすべきだというのです。
一理はありと思いますが、
私は、入れ子が2段までなら使っても良いのではないかと思います。
ですが、好みです。
皆さんはご自分で判断されて好きな方を採用すれば良いのではないでしょうか。
さて、If文の学習は以上にします。
第5講では関数(1)の学習に入ります。
本当は、第3講関数(1)→第4講for文→第5講If文の構成にするか、
本講義の構成にするか迷いました。
普通は関数はかなり後の方で学ぶのですが、
私は出来るだけ関数の学習は早めにするべきだと思っています。
ただ、for文とIf文を学んでいないと、関数の内容が貧弱になってしまうのです。
それで本講義の順番を採用しましたが、
第8話のように、社長であるmain()がすべての仕事をしてしまうのは好ましくありません。
社長は、指令役に徹して出来るだけ部下に仕事をさせるべきだからです。
一つ一つの関数の記述が大きくなりすぎるのは、
わかりやすさという点で問題があるのです。
部品=関数は出来るだけ小さめに作るが原則です。
関数を後の方で学ぶとmain()で何でもしてしまうという悪癖がつきます。
ですから、他のサイトや書籍では後の方で学ぶ関数を早めに学習するのです。


第8話へ   第5講第1話へ
 
002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ