条件分岐の式では、条件に応じて実行するコードを選択する
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),
}
}