ナッキー様講座の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文を使って複数に分岐することです。
プログラムって、すごいなぁ・・・と、あらためて感心しております。
