条件分岐の式では、条件に応じて実行するコードを選択する
if expr {
statement
}
state_true, falseで実行するステートメントを分岐する
if is_even(n){
println!(“{}は偶数です”, n);
} else {
println!(“{}は奇数です”, n)
}
use std::io; fn main(){ println!("整数を入力してください。"); let mut s = String::new(); io::stdin().read_line(&mut s).ok(); let x:i32 = s.trim().parse().ok().unwrap(); if x > 0 { println!("{}は正の整数です。", x); } else if x < 0 { println!("{}は負の整数です。", x); } else { println!{"{}はゼロです。", x}; } }
値を返す場合はセミコロンを付けない
fn main(){ let x = 0; let b = if x > 0 { println!("{}は正の値", x) } else { println!("{}はゼロまたは負の値", x) }; println!("b={:?}", b); }
### match文
match文は、式を評価して、結果に応じて処理を切り替える
fn main(){ let n:i32 = 3; let x = n % 2; match x { 0 => println!("{}は偶数です。", n), 1 => println!("{}は奇数です。", n), _ => println!("{}は偶数でも奇数でもありません。", n), } }
_のケースを記載しないとコンパイル時にエラーになる
その場合は、 _ => (),と書く
fn main(){ let n:i32 = 3; match (n % 2) == 0 { true => println!("{}は偶数です。", n), false => println!("{}は奇数です。", n), } }
fn main(){ let n:u16 = 3; match n { 0 => println!("{}はゼロです。", n), 1..=9 => println!("{}は10未満の整数です。", n), _ => println!("{}は10以上の整数です。", n), } }
「|」を使って条件式に複数の値を指定することもできる
fn main(){ let n:u16 = 3; match n { 0 => println!("{}はゼロです。", n), 1|3|5|7|9 => println!("{}は10以下の奇数です。", n), 2|4|6|8|10 => println!("{}は10以下の偶数です。", n), _ => println!("{}は11以上の整数です。", n), } }