Pascal入門‎ > ‎

060_条件分岐-if

次のコードをHelloPascal4のウィンドウに貼り付けて、プルダウンメニューの操作から実行して見ましょう。

program rei060(input, output);
var x:integer;
begin
  readln(x);
  if x>10 then
    writeln('Your input is larger than 10.')
  else
    writeln('Your input is 10 or less.');
end.

あなたの入力した数字が10を上回っているかどうかを判定してそれに応じた処理を行います。

※余談ですが「writeln('Your input is larger than 10.')」には今までの例では全ての行末に付いていたセミコロン(;)が有りません。pascalでは厳密にいうとセミコロンは文と文の区切りを示します。つまりこの例では文一つがthenとelseに囲まれている形で、区切る必要が有りませんから、セミコロンは必要有りません。
実は最後の「writeln(' Your input is 10 or less.');」もこの後に文は有りませんからセミコロン無しで問題ありません。なお文と文の区切りではないこのような場所でセミコロンを使っても問題が起こらないのはセミコロンの後に空文があると解釈されるためです。※

if文で良く使われるバリエーションは次の通りです。

①式が true のときだけ文を実行する。
  if 式 then
    文;

②式がtrueの時は文1を実行し、falseの時は文2を実行する。
  if 式 then
    文1
  else
    文2;

③式1が true の時は文1を実行。falseの時は式2を評価し、式2がtrueの時は文2を実行、falseの時は文3を実行する。
  if 式1 then
    文1
  else if 式2 then
    文2
  else
    文3;

なお③の形は最後のelseにまた~if 式3 then~と言う具合で幾らでも続ける事が出来ます。

条件の分岐の中で複数の文を必要とする場合は次のようにbeginとendを使います。

program rei060a(input, output);
var x:integer;
begin
  readln(x);
  if x>10 then
   begin
    writeln('Your input is larger than 10.');
    writeln('Your input is ', x)
   end
  else
   begin
    writeln('Your input is 10 or less.');
    writeln('Your input is ', x)
   end
end.