Basic Pascal Tutorial/Chapter 3/IF/ja

From Lazarus wiki
Revision as of 09:27, 10 August 2015 by Derakun (talk | contribs)
Jump to navigationJump to search

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

3Ca - IF (著者: Tao Yue, 状態: 原文のまま修正なし)

IF 文はブール式の結果をもとに分岐を可能にする。 1方向の分岐の形式は次のようになる。

if ブール式 then
  真の場合の命令文;

もし、ブール式が true と評価されたなら、命令文が実行される。そうでない場合には、スキップされる。

IF 文は1つの命令文のみ受け取る。命令文の組み合わせで分岐させたいなら、 begin-end ブロック で命令文を囲む。

if ブール式 then
begin
  命令文1;
  命令文2
end;

2方向の分岐もある。

if ブール式 then
  真の場合の命令文
else
  偽の場合の命令文;

ブール式が FALSE と評価されると、 else に続く命令文が実行される。 else の前の命令文にはセミコロンをつけてはいけないことに注意しよう。つけてしまうと、コンピュータはそれを1方向の選択と扱い、 else がどこからきたのかわからないままになってしまうからである。

複数選択が必要な場合には、単に if 文を入れ子にすればよい。

if 条件1 then
  命令文1
else
  if 条件2 then
    命令文2
  else
    命令文3;

入れ子にする場合には注意が必要である。しばしばコンピュータはあなたが望んでいることとは違うことを実行するからである。

if 条件1 then
  if 条件2 then
    命令文2
else
  命令文1;

else は常に直前の if とマッチする。従って、コンピュータはコードの前のブロックを次のように解釈する。

if 条件1 then
  if 条件2 then
    命令文2
  else
    命令文1;

空の命令文(null statement)を使って次のようにするすることもできる。

if 条件1 then
  if 条件2 then
    命令文2
  else
else
  命令文1;

あるいは begin-end のブロックを利用することもできる。しかし、コードをきれいにする最良の方法は条件を書き換えることだろう。

if not 条件1 then
  命令文1
else
  if 条件2 then
    命令文2;

This example illustrates where the not operator comes in very handy. If Condition1 had been a Boolean like: (not(a < b) or (c + 3 > 6)) and g, reversing the expression would be more difficult than NOTting it.

Also notice how important indentation is to convey the logic of program code to a human, but the compiler ignores the indentation.


previous contents next