制御構文
条件分岐や繰り返しなどの、制御構文について説明します。
if - 条件分岐
if (条件式)
の後に {} で処理を書き分けることで、条件分岐を実現できます。
int x = 100;
int y = 200;
if (x == y) {
// x == y の評価結果が true だった場合の処理
} else {
// x == y の評価結果が false だった場合の処理
}
while - 繰り返し
while (条件式) { }
と書くことで、条件式が false になるまで、{} の中を繰り返し実行する処理が書けます。
ループを強制的に抜けるには break を利用します。
int x = 0;
while (x < 100) {
// x が 100より小さい間は、この処理を繰り返し実行する
++x;
}
int y = 0;
// 条件式が常にtrueなので、breakで明示的に抜けるまで中の処理を繰り返す
while (true) {
if (y >= 100) {
// 強制的にループを抜ける
break;
}
++y;
}
for - 初期化と反復子込みの繰り返し
for (初期化処理; 条件式; 反復子) { }
と書くことで、
- 初期化処理を行い、
- 条件式を評価した結果が true の場合は {} 内の処理を実行し、
- 反復子を処理したあと、
- 再度条件式を確認し、true であれば 2. に戻り処理を繰り返す
という処理を実現できます。
()の後に {} で処理を書き分けることで、条件分岐を実現できます。
int i;
for (i = 0; i < 100; ++i) {
// 100回この処理を繰り返す
hsSystemOutput("%d\n" % i);
}
switch - 多数の分岐条件を簡潔に記述
switch (条件判定に利用する値) {
case 判定に利用する値:
// 処理A
break;
case 判定に利用する値:
// 処理B
break;
// ...
}
と書くことで、1つの値に対して、複数の条件判定式と、それが真である場合に実行する処理を簡潔に書くことができます。
case の末尾に default 節を置くことで、それより上にある全ての case に一致しない場合の処理を書くことができます。
int id = 100;
string message;
switch (id) {
case -1:
message = "dummy account";
break;
case 0:
message = "root user";
break;
default:
message = "restricted user";
break;
}