假設程式碼要在條件式成立後執行,條件式不成立時要執行其他程式碼,我們就可以用 if ... else 來寫
先來介紹 if
可以應用的時機在,條件式成立時,我想執行某個程式碼或者印出某句話
讓我們來看看範例
當 5 > 3 的時候,就要印出 5 is greater than 3
fn main() {
if 5 > 3 {
println!("5 is greater than 3")
}
}
# 結果:5 is greater than 3
但如果不成立也需要另外執行程式碼或印出其他東西時,就要加上 else
fn main() {
let num = 2;
if num >= 3 {
println!("num is greater than 3")
} else {
println!("num is less than 3")
}
}
# 結果:num is less than 3
但如果可能會有多種結果,可以再加入 else if
fn main() {
let num = -2;
if num > 0 {
println!("num is a positive number")
} else if num < 0 {
println!("num is a negative number")
} else {
println!("num is equal to zero")
}
}
# 結果:num is a negative number
這是迴圈,如果我們沒有加上 break 的話,他就會一直跑到你關掉為止
fn main() {
loop {
println!("oh my god")
}
}
可以編譯完執行看看,會跑到沒完沒了,用 ctrl + c 即可停止
我們可以搭配 if ... else 來玩看看
fn main() {
let mut num = 3;
loop {
num += 1;
println!("{}", num);
if num > 10 {
println!("num is greater than 10");
break;
}
}
}
結果:4
5
6
7
8
9
10
11
num is greater than 10
while 是指當這個運算式結果是 true 的時候會執行
直到結果變成 false 為止
但如果結果一直都是 true ,就會變成無窮迴圈,需要注意一下
fn main() {
let mut num = 3;
while num < 6 {
println!("{} is less than 6", num);
num += 1;
}
}
結果:
3 is less than 6
4 is less than 6
5 is less than 6
for 是相對更有彈性的回圈,你可以設定起點及終點
在抵達終點以前,迴圈會不斷地執行,所以記得讓運算式有方法可以抵達終點!
以下範例,我們要讓 i 每跑一次迴圈就 +1 ,直到 i 為 6 止
如果沒有讓他 +1 ,就會陷入無窮迴圈了!
fn main() {
for mut i in 1..6 {
println!("{} is less than 6", i);
i += 1
}
}
結果:
1 is less than 6
2 is less than 6
3 is less than 6
4 is less than 6
5 is less than 6
break 指的是我要在這時候終止
continue 指的是我要 skip 這一次,前往下次
提醒一下
最後for跑出來結果是下面:
1 is less than 6
2 is less than 6
3 is less than 6
4 is less than 6
5 is less than 6
不過這不是重點,小小提一下意見,最後的 i += 1 應該是無作用的操作
我在for i in range
裡面比較少去mut i
,我是比較buy in 函數式的思維減少可變的東西 XDD
收到!感謝指正
也感謝提供見解
你可能沒理解我想表達的:
fn main() {
for i in 1..6 {
println!("{} is less than 6", i);
}
}
這樣也可以正常跑一樣的結果,不需要 i+=1
,for .. in range
的迴圈本身就是有限的