メインコンテンツまでスキップ

IF文

紹介

このセクションでは、Wave言語で提供される制御文の一つであるIF文の文法と使い方について説明します。 IF文は条件を評価して、その条件が真の場合にのみ特定のコードブロックを実行する基本的な制御構造です。

これにより、プログラムは単に上から下に実行されるフローを超えて、状況や条件に応じて異なる動作を実行することができます。 IF文はほぼすべてのプログラムの核心を成す要素であり、論理的な分岐とフロー制御を実装するために欠かせないものです。

基本構造

IF文はまず条件式を評価し、その結果が真(True)の場合にのみ中括弧 {} に記述されたコードブロックを実行します。 条件が偽(False)の場合はそのブロックをスキップして次のコードに進みます。

WaveのIF文の基本構造は以下のとおりです。

if (条件) {
// 条件が真の場合に実行されるコード
}

条件式には比較演算子や論理演算子を自由に使用できます。 例えば、==, !=, <, >, <=, >=のような比較演算子を使用して値の関係を比較したり、&&, ||, !のような論理演算子を使って複数の条件を組み合わせることもできます。

条件式の結果は必ず真または偽に評価されなければならず、条件が偽の場合はIFブロック内のコードは実行されません。

以下は最も単純な形のIF文の例です。

var temperature :i32 = 30;

if (temperature > 25) {
println("天気が暑いです。");
}

上記のコードでは、temperature変数の値が25より大きいかどうかを条件として評価します。 条件が真の場合、"天気が暑いです。"というメッセージが出力され、条件が偽の場合は何も実行されません。

このようにIF文は、特定の条件を満たす場合にのみコードを実行したいときに使用されます。

IF-ELSE文

条件が真でない場合にも実行すべきコードがある場合は、IF文にELSE節を追加できます。 IF-ELSE文は条件の結果に応じて2つのコードブロックのいずれかを選択的に実行する構造です。

基本的な構造は次の通りです。

if (条件) {
// 条件が真の場合に実行されるコード
} else {
// 条件が偽の場合に実行されるコード
}

条件が真の場合はIFブロックが実行され、条件が偽の場合はELSEブロックが実行されます。 二つのブロックのうちどちらか一方のみが実行され、同時に実行されることはありません。

次は、IF-ELSE文を使用した例です。

var score :i32 = 70;

if (score >= 60) {
println("合格です!");
} else {
println("不合格です。");
}

このコードでは、scoreが60以上かどうかに応じて異なるメッセージを出力します。 条件が真の場合は「合格です!」が表示され、そうでない場合は「不合格です。」が表示されます。

ネストされたIF文

IF文は他のIF文の内部でも使用でき、これをネストされたIF文と呼びます。 ネストされたIF文は、複数の条件を段階的に評価する必要があるときに役立ちます。

次の例は、スコアに応じて異なる結果を出力するネストされたIF文の例です。

var score :i32 = 85;

if (score >= 60) {
if (score >= 90) {
println("優秀な成績です!");
} else {
println("合格です。");
}
} else {
println("不合格です。");
}

このコードでは、まずスコアが60以上かどうかを確認します。 60未満の場合はすぐに「不合格です。」が表示されます。 60以上の場合は再度条件を評価し、スコアが90以上であれば「優秀な成績です!」を出力し、そうでなければ「合格です。」を出力します。

このように、ネストされたIF文を使用すると、複雑な条件の分岐を段階的に表現することができます。

要約

IF文は条件を評価してプログラムの実行フローを制御する基本的な制御文です。 ELSE節を併用することで、条件が偽のときの動作も明確に定義でき、ネストされたIF文を通じて複数の条件を組み合わせた複雑な分岐処理も可能です。

IF文を適切に活用することで、プログラムの流れをより論理的で明確に構成することができます。