if文
コード内の条件式は、bool型でなければならないことにも触れる価値があります。 条件式が、bool型でない時は、エラーになります。
Rustのif文は bool型のみ許可される。PHPのように安易にオブジェクトをif文に渡してはいけない!!!ここはちょこちょこ引っかかりきそうなので注意!
また、ifとelseとで、返す値の型が異なるのもNG if ではintを返して、elseではcharを返すといった処理をするとコンパイルエラーとなる!この辺りは大分とかっちりしてるんだなーという印象
if elseif ... で複数の条件を実行したいときは、最初に真と判定されたタイミングでif 文での制御は終了するので、複雑な条件判定をする場合は matchを利用するといいらしい matchに関してはまた後ほど学習する
phpでの foreach が Rustでは for 文らしい
php の for 文運用も Rust の for文で補填できそう Range 型を利用することで、指定の値の範囲でループ処理ができる
fn main() {
for number in (1..4).rev() {
println!("{}!", number);
}
println!("LIFTOFF!!!");
}
loop文の使いどころがいまいち掴めていない。labelを指定して、どのループまでぬけるとかを細かく指定できるそうな。うまい利用方法がぱっと思いつかない。利用しすぎると、著しく可読性を損なう予感。。。
fn main() {
let mut count = 0;
'counting_up: loop {
println!("count = {}", count);
let mut remaining = 10;
loop {
println!("remaining = {}", remaining);
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up;
} remaining -= 1;
}
count += 1;
}
println!("End count = {}", count);
}