if文

条件によって実行を分岐するためのif文について説明します。


目次:


書式

if

elseif

else

条件式

スコープ

endif

書式

if文は以下の形式です。


if ( 条件式 )

...

elseif ( 条件式 )

...

else

...

endif


条件式が上から順番に評価されて最初に条件を満たしたセクションが実行されます。全ての条件式が条件を満たさずelseセクションがあればelseセクションが実行されます。

セクションの実行がelseif、else、endifに達した場合は、endifの次の文に制御が移動します。

if

if文である事とifセクションの開始を示すキーワードです。

ifセクションは以下の形式です。


if ( 条件式 )

...


ifセクショはif文の先頭に一つだけ必要です。

elseif

elseifセクションの開始を示すキーワードです。

elseifセクションは以下の形式です。


elseif ( 条件式 )

...


else ifでは無くelseifであることに注意してください。

elseifセクションはオプションです。if文中に任意の数だけ存在できます。

else

elseセクションの開始を示すキーワードです。

elseセクションは以下の形式です。


else

...


elseセクションはオプションです。if文中に一つしか存在できません。

条件式

条件式となれる式は以下の二つです。


boolクラスを返す式。

数値。int、long、realクラスを返す式。


boolクラスを返す場合、値がtrueならばセクションが実行されます。

数値を返す場合、値が非ゼロならばセクションが実行されます。

条件式がproxyクラスを返す場合は、proxyクラスの実体が自動的に使用されます。proxyクラスのEntityゲッターを呼び出したのと同じ結果になります。


proxy pro = new proxy(true);

if(pro) // pro.Entity is used.

...

endif


proxyクラスの実体はboolクラスか数値でなければなりません。

スコープ

if文全体でのスコープはありません。セクションが個別のスコープを生成します。

セクション内の文はオプションです。セクション内に任意の数だけ存在できます。

endif

if文の終了を示すキーワードです。

endifの代わりに省略形のeiを使用できます。eiもキーワードであることに注意してください。

1:

class example

2:

open method string someMethod(int arg)

3:

if (arg > 0) // ♦1

4:

return "Greater than zero";

5:

elseif(arg < 0) // ♦1

6:

return "Less than zero";

7:

else // arg == 0

8:

return "zero";

9:

endif

10:

em

11:

open method string someMethod2(int arg)

12:

if (arg) // ♦2: arg != 0

13:

return "Not zero";

14:

else // arg == 0

15:

return "zero";

16:

endif

17:

em

18:

ec

♦1: bool値を評価する条件式。

♦2: 数値を評価する条件式。

Copyright © Rice All rights reserved.