Difference between revisions of "Basic Pascal Tutorial/Chapter 3/IF/ja"

From Lazarus wiki
Jump to navigationJump to search
Line 11: Line 11:
 
もし、ブール式が <tt>true</tt> と評価されたなら、命令文が実行される。そうでない場合には、スキップされる。
 
もし、ブール式が <tt>true</tt> と評価されたなら、命令文が実行される。そうでない場合には、スキップされる。
  
The <tt>IF</tt> statement accepts only one statement. If you would like to branch to a compound statement, you must use a <tt>begin-end</tt> [[block]] to enclose the statements:
+
<tt>IF</tt> 文は1つの命令文のみ受け取る。命令文の組み合わせで分岐させたいなら、 <tt>begin-end</tt> [[ブロック]] で命令文を囲む。
 
<syntaxhighlight>
 
<syntaxhighlight>
if BooleanExpression then
+
if ブール式 then
 
begin
 
begin
   Statement1;
+
   命令文1;
   Statement2
+
   命令文2
 
end;  
 
end;  
 
</syntaxhighlight>
 
</syntaxhighlight>
  
There is also a two-way selection:
+
2方向の分岐もある。
 
<syntaxhighlight>
 
<syntaxhighlight>
if BooleanExpression then
+
if ブール式 then
   StatementIfTrue
+
   真の場合の命令文
 
else
 
else
   StatementIfFalse;  
+
   偽の場合の命令文;  
 
</syntaxhighlight>
 
</syntaxhighlight>
  
If the Boolean expression evaluates to <tt>FALSE</tt>, the statement following the <tt>else</tt> will be performed. Note that you may not use a semicolon after the statement preceding the <tt>else</tt>. That causes the computer to treat it as a one-way selection, leaving it to wonder where the else came from.
+
ブール式が <tt>FALSE</tt> と評価されると、 <tt>else</tt> に続く命令文が実行される。 <tt>else</tt> の前の命令文にはセミコロンをつけてはいけないことに注意しよう。つけてしまうと、コンピュータはそれを1方向の選択と扱い、 else がどこからきたのかわからないままになってしまうからである。
  
 
If you need multi-way selection, simply nest <tt>if</tt> statements:
 
If you need multi-way selection, simply nest <tt>if</tt> statements:

Revision as of 10:19, 10 August 2015

български (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 you need multi-way selection, simply nest if statements:

if Condition1 then
  Statement1
else
  if Condition2 then
    Statement2
  else
    Statement3;

Be careful with nesting. Sometimes the computer won't do what you want it to do:

if Condition1 then
  if Condition2 then
    Statement2
else
  Statement1;

The else is always matched with the most recent if, so the computer interprets the preceding block of code as:

if Condition1 then
  if Condition2 then
    Statement2
  else
    Statement1;

You can get by with a null statement:

if Condition1 then
  if Condition2 then
    Statement2
  else
else
  Statement1;

Or you could use a begin-end block. But the best way to clean up the code would be to rewrite the condition.

if not Condition1 then
  Statement1
else
  if Condition2 then
    Statement2;

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