Rustで制御フローを制御するif文とループ処理の使い方

先生

Rustのif文とループ処理をマスターして、プログラムの制御フローを自由自在に操ろう!

Rustの制御フロー:if文で条件分岐

Rustにおける制御フローは、プログラムの実行順序を決定する上で不可欠です。特にif文は、条件に基づいて異なるコードブロックを実行するために使用されます。この記事では、Rustのif文とループ処理に焦点を当て、具体的な例を交えながらその使い方を解説します。

if文の基本的な構文は次のとおりです。

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

conditionは真偽値を返す式です。elseブロックは省略可能です。

例えば、数値が正か負かを判定するif文は次のようになります。

let number = 5;

if number > 0 {
    println!("正の数です");
} else if number < 0 {
    println!("負の数です");
} else {
    println!("ゼロです");
}

この例では、else ifを使って複数の条件をチェックしています。if文は値を返す式としても使用できます。この場合、すべての分岐が同じ型を返す必要があります。

let result = if number > 0 {
    1
} else {
    -1
};

println!("結果: {}", result);

Rustのループ処理:for、while、loop

Rustには、forwhileloopという3種類のループ構造があります。

forループは、イテレータを介して要素を反復処理するのに適しています。

let numbers = vec![1, 2, 3, 4, 5];

for number in numbers {
    println!("数値: {}", number);
}

この例では、numbersベクトルの各要素を順番に処理しています。whileループは、条件が真である限りコードブロックを繰り返し実行します。

let mut count = 0;

while count < 5 {
    println!("カウント: {}", count);
    count += 1;
}

loopは、無限ループを作成します。break文を使ってループを終了させることができます。

let mut count = 0;

loop {
    println!("カウント: {}", count);
    count += 1;

    if count > 5 {
        break;
    }
}

ループにはラベルを付けることができます。ラベルを使用すると、ネストされたループからbreakまたはcontinueする際に、どのループをターゲットにするかを指定できます。

'outer: loop {
    println!("Outer loop");

    loop {
        println!("Inner loop");
        break 'outer; // 外側のループを終了
    }
}

continue文は、現在のイテレーションをスキップして、次のイテレーションに進みます。

for number in 1..=5 {
    if number % 2 == 0 {
        continue; // 偶数の場合はスキップ
    }
    println!("奇数: {}", number);
}

参考リンク

まとめ

この記事では、Rustのif文とループ処理の基本的な使い方を解説しました。if文は条件分岐を、forwhileloopは繰り返し処理をそれぞれ実現します。これらの制御フローを理解することで、より複雑なプログラムをRustで記述できるようになります。 ぜひ、今回紹介したコード例を参考に、Rustでのプログラミングに挑戦してみてください。