見出し画像

Rust if/else/else if 使い方と注意点

Rustのifとelseは、条件分岐を行うための制御構造です。

if文とelse文を使って、条件に基づいて異なるブロックのコードを実行することができます。
また、Rustのif/elseは式として使用できるため、値を返すことも可能です。


if/elseの使い方

基本的なif/else構文

条件式が真の場合にifブロックを、偽の場合にelseブロックを実行します。

let x = 10;

if x > 5 {
    println!("x is greater than 5");
} else {
    println!("x is not greater than 5");
}

この例では、xが5より大きいかどうかを確認し、それに応じて異なるメッセージを表示します。


else if 構文

複数の条件を持つ場合、else ifを使って追加の条件をチェックできます。

let x = 7;

if x == 5 {
    println!("x is 5");
} else if x > 5 {
    println!("x is greater than 5");
} else {
    println!("x is less than 5");
}

xの値に応じて異なる条件をチェックし、それに基づいてメッセージを表示します。


ifを式として使う

Rustでは、ifを式として使用し、その結果を変数に代入できます。

let x = 3;
let result = if x % 2 == 0 {
    "even"
} else {
    "odd"
};

println!("x is {}", result); 

xが偶数か奇数かを判定し、結果をresult変数に代入しています。


注意点

条件式の型

Rustのif文では、条件式は必ずブール値でなければなりません。
CやC++のように、非ゼロの数値を真と解釈することはできません。

let x = 5;
if x { 
    println!("x is true");
}

xがブール値ではないため、コンパイルエラーが発生します。条件式はtrueまたはfalseを返す必要があります。


スコープとシャドーイング

if/elseブロック内で変数を定義すると、外部スコープの変数をシャドーイングする可能性があります。
意図せずに変数を再宣言すると、コードの意味が曖昧になることがあります。


不必要なブランチ

if/elseを使用する際は、コードの複雑性を最小限に抑えるよう努めます。シンプルな条件分岐が望ましいです。
また、過度なネストは避け、単純な構造を保つことが必要です。



Rustをもっと詳しくなりたい方に

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!

個人的には他の言語開発もそれなりにあったことからこの本を読むことでかなりRustへの理解が深まりました。
プログラムやシステム的な専門用語は当たり前に登場するものの、他の言語での開発経験がある方なら問題ないでしょう。むしろその経験があることで、多言語との比較をしながら読み進めることができます。
内容的には大容量かつ丁寧すぎるほど嚙み砕いて説明がされているため、情報量は十分といえます。Rust自体学習コストが高く、難易度の高い言語のためこのくらいが妥当といえます。
プログラミング初心者レベルの方には難しい内容となっていますが、Rustの概念を理解し、基礎を把握することができる本であること間違いなしです。

Rust学習のために筆者が実際に読んでおすすめしたい本をまとめています。


基礎から学ぶRustプログラミング入門

本コースではRustについて全く経験がない方でもスムーズに学習を進められるようにとなっています。
基本的にはコードベースで解説を行い、抽象度が高く難しい内容に関しては適宜スライドも使いながら丁寧に解説します。そしてただ文法を学ぶだけではなく、最終的には演習としてCLIアプリケーションを作成し学習内容の定着を図ります。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています

この記事が参加している募集

この経験に学べ

この記事が気に入ったらサポートをしてみませんか?