1if と else の基本
気温が30度以上かどうかで表示を変える、いちばん素朴な条件分岐です。条件に丸括弧が要らないこと、ブロックの波括弧は省略できないことを確認してください。しきい値による分岐は、バリデーションやアラート判定など実務のあらゆる場所に現れます。
fn main() {
let temperature = 31;
if temperature >= 30 {
println!("真夏日です");
} else {
println!("真夏日ではありません");
}
}
2else if で多段階に分ける
点数を S/A/B/C の4段階に振り分ける、else if の連鎖の例です。条件は上から順に評価され、最初に真になった分岐だけが実行されるため、「90以上 → 80以上 → 60以上」と厳しい順に並べるのがコツです。料金区分や閾値ベースの判定ロジックでそのまま使う形です。
fn main() {
let score = 72;
if score >= 90 {
println!("評価: S");
} else if score >= 80 {
println!("評価: A");
} else if score >= 60 {
println!("評価: B");
} else {
println!("評価: C");
}
}
3値を返す if 式 — 三項演算子の代わり
if が式であることを使い、分岐の結果を直接変数に入れる例です。他言語の三項演算子 cond ? a : b に相当する処理は、Rust ではこの形で書きます。各分岐が返す型(ここでは &str と i32)を分岐内でそろえる必要がある点も確認してください。
fn main() {
let stock = 0;
let label = if stock > 0 { "在庫あり" } else { "在庫切れ" };
println!("この商品: {}", label);
let age = 20;
let fee = if age >= 18 { 1800 } else { 1000 };
println!("料金 = {}円", fee);
}
4条件は必ず bool — 数値の真偽扱いはできない
if count と書けず、count != 0 のように bool になる式を書く必要がある、という Rust の厳格さを示す例です。bool 型の変数ならそのまま条件に置けます。C や JavaScript の「0 は偽」という癖が抜けないうちに、一度エラーを見て体に入れておくと安心です。
fn main() {
let count = 3;
// if count { ... } はエラー: 数値をそのまま条件にはできない
if count != 0 {
println!("データが {} 件あります", count);
}
let is_admin = true; // bool の変数はそのまま条件に書ける
if is_admin {
println!("管理者メニューを表示します");
}
}
5送料の判定を if 式の関数にする
「3000円以上は送料無料」というビジネスルールを、if 式を返り値にした関数として切り出す実務寄りの例です。関数の最後に if 式を置けば、return を書かずに分岐結果がそのまま戻り値になります。判定ルールを関数名で読めるようにするこの形は、実務コードで最も頻繁に書く if の使い方です。
fn shipping_fee(total: i32) -> i32 {
if total >= 3000 {
0 // 3000円以上は送料無料
} else {
500
}
}
fn main() {
let order1 = 4200;
let order2 = 1800;
println!("{}円の注文 → 送料{}円", order1, shipping_fee(order1));
println!("{}円の注文 → 送料{}円", order2, shipping_fee(order2));
}