case文を使う

ナッキー様講座の5回目は、占いプログラムです。
条件を指定して分岐するというのをやるようです。だんだん難しくなるぞ!

たくさん分岐する場合は、caseのほうがif文を入れ子にするよりも見やすいという利点があります。

  • caseは、条件が満たされたときに実行される処理を、begin~endブロックで囲んで記述します。
    ※1文だけの場合は囲まなくてもよい
  • if..then..else と違って、elseの直前の文末にもセミコロンが必要です。

準備

  1. フォームに、ツールパレットのAdditionalから「TGridPanel」を貼り付けます。
    レイアウトのAlignプロパティで「alClient」を選択します。フォームいっぱいに広がります。
    レイアウトのPaddingは、4方向とも「5」を設定します。
  2. ツールパレットのStandardから、TButtonを4つ貼り付けます。
    ボタンのCaptionプロパティに、血液型を4種類入力します。
    Nameプロパティにはボタンの名前を付けます。
    レイアウトのAlignプロパティで「alClient」を選択します。マス目いっぱいに広がります。

プログラム(プロシジャーのみ)

ナッキー様のプログラムですが、まんま写すのもなんなんで、変数名などを変えてみました。
説明はプログラムの中にメモしておきました。忘備録です。


procedure TForm1.btnAClick(Sender: TObject);

  var
    //ランダムな値を入れる変数(整数型)
    UranaiNum : Integer;
    //項目を入れる変数(文字列型)
    UranaiItem : string;
begin
  //ボタンAをクリックしたとき
  //この場合は、0から4までのどれかの値が入る
  UranaiNum := Random(5);
  //Case文 ランダム値で分岐する
  case UranaiNum of
    0 : UranaiItem := '犬';
    1 : UranaiItem := 'ネコ';
    2 : UranaiItem := '鳥';
    3 : UranaiItem := 'ウサギ';
    4 : UranaiItem := 'サル';
  end;//Case文終わり
  ShowMessage('A型のあなたの幸運の鍵は' + UranaiItem);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //乱数表の順番をランダムにする関数
  Randomize;
end;

実行結果

こんな感じです。動いた動いた嬉しいなっと。
今回勉強したのは、ランダムな数値を使うことと、Case文を使って複数に分岐することです。
プログラムって、すごいなぁ・・・と、あらためて感心しております。

lesson5-2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です