Difference between revisions of "Basic Pascal Tutorial/Chapter 3/IF/ja"
(Created page with "{{IF}} 3Ca - IF (著者: Tao Yue, 状態: 原文のまま修正なし) The <tt>IF</tt> statement allows you to branch based on the result of a Boolean operation. The one-way...") |
m (bypass language bar/categorization template redirect [cf. discussion]) |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{IF}} | + | {{Basic Pascal Tutorial/Chapter 3/IF}} |
3Ca - IF (著者: Tao Yue, 状態: 原文のまま修正なし) | 3Ca - IF (著者: Tao Yue, 状態: 原文のまま修正なし) | ||
− | + | <tt>IF</tt> 文はブール式の結果をもとに分岐を可能にする。 1方向の分岐の形式は次のようになる。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if ブール式 then |
− | + | 真の場合の文; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | もし、ブール式が <tt>true</tt> と評価されたなら、文が実行される。そうでない場合には、スキップされる。 | |
− | + | <tt>IF</tt> 文は1つの文のみ受け取る。文の組み合わせで分岐させたいなら、 <tt>begin-end</tt> [[ブロック]] で文を囲む。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if ブール式 then |
begin | begin | ||
− | + | 文1; | |
− | + | 文2 | |
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 2方向の分岐もある。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if ブール式 then |
− | + | 真の場合の文 | |
else | else | ||
− | + | 偽の場合の文; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ブール式が <tt>FALSE</tt> と評価されると、 <tt>else</tt> に続く文が実行される。 <tt>else</tt> の前の文にはセミコロンをつけてはいけないことに注意しよう。つけてしまうと、コンピュータはそれを1方向の選択と扱い、 else がどこからきたのかわからないままになってしまうからである。 | |
− | + | 複数選択が必要な場合には、単に <tt>if</tt> 文を入れ子にすればよい。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if 条件1 then |
− | + | 文1 | |
else | else | ||
− | if | + | if 条件2 then |
− | + | 文2 | |
else | else | ||
− | + | 文3; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 入れ子にする場合には注意が必要である。しばしばコンピュータはあなたが望んでいることとは違うことを実行するからである。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if 条件1 then |
− | if | + | if 条件2 then |
− | + | 文2 | |
else | else | ||
− | + | 文1; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | <tt>else</tt> は常に直前の <tt>if</tt> とマッチする。従って、コンピュータはコードの前のブロックを次のように解釈する。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if 条件1 then |
− | if | + | if 条件2 then |
− | + | 文2 | |
else | else | ||
− | + | 文1; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 空の文(null statement)を使って次のようにするすることもできる。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if | + | if 条件1 then |
− | if | + | if 条件2 then |
− | + | 文2 | |
else | else | ||
else | else | ||
− | + | 文1; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | あるいは <tt>begin-end</tt> のブロックを利用することもできる。しかし、コードをきれいにする最良の方法は条件を書き換えることだろう。 | |
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
− | if not | + | if not 条件1 then |
− | + | 文1 | |
else | else | ||
− | if | + | if 条件2 then |
− | + | 文2; | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | この例は not 演算子を非常にうまく利用している。もし、条件1が次のようなブール式だとすると、 <tt>(not(a < b) or (c + 3 > 6)) and g</tt>、式を反転させるのは NOT をつけるだけでは済まず、より難しいものとなるだろう。 | |
− | + | プログラムのロジックを人間に伝えるにはインデントがどれほど重要かにも気がついただろう。しかし、コンパイラはインデントは無視してしまうのである。 | |
{|style=color-backgroud="white" cellspacing="20" | {|style=color-backgroud="white" cellspacing="20" | ||
− | |[[ | + | |[[Basic Pascal Tutorial/Chapter 3/Boolean Expressions/ja|previous]] |
− | |[[Contents/ja|contents]] | + | |[[Basic Pascal Tutorial/Contents/ja|contents]] |
− | |[[CASE/ja|next]] | + | |[[Basic Pascal Tutorial/Chapter 3/CASE/ja|next]] |
|} | |} |
Latest revision as of 16:18, 20 August 2022
│
български (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;
この例は not 演算子を非常にうまく利用している。もし、条件1が次のようなブール式だとすると、 (not(a < b) or (c + 3 > 6)) and g、式を反転させるのは NOT をつけるだけでは済まず、より難しいものとなるだろう。
プログラムのロジックを人間に伝えるにはインデントがどれほど重要かにも気がついただろう。しかし、コンパイラはインデントは無視してしまうのである。
previous | contents | next |