ナッキー様講座の5回目は、占いプログラムです。
条件を指定して分岐するというのをやるようです。だんだん難しくなるぞ!
たくさん分岐する場合は、caseのほうがif文を入れ子にするよりも見やすいという利点があります。
- caseは、条件が満たされたときに実行される処理を、begin~endブロックで囲んで記述します。
※1文だけの場合は囲まなくてもよい - if..then..else と違って、elseの直前の文末にもセミコロンが必要です。
準備
- フォームに、ツールパレットのAdditionalから「TGridPanel」を貼り付けます。
レイアウトのAlignプロパティで「alClient」を選択します。フォームいっぱいに広がります。
レイアウトのPaddingは、4方向とも「5」を設定します。 - ツールパレットの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文を使って複数に分岐することです。
プログラムって、すごいなぁ・・・と、あらためて感心しております。