相信大家看到這個標題就知道我們這一站的主題要說什麼了,不過大家是否會疑惑因為我在前面才剛說過 Go 語言中是沒有 while 迴圈的,但是現在又說有這不是打自己臉嗎 ?
其實不然,因為 Go 語言中 while 迴圈的語法是長這個樣子的
package main
import "fmt"
func main() {
sum := 1
for sum < 5 {
sum += sum
}
fmt.Println(sum)
}
可以發現格式跟以往的程式語言使用 while 迴圈時的語法非常相似,但是仔細一看又發現根本就沒有 while 這個關鍵字的出現,只有出現 for 迴圈
上方的程式其實語法滿好懂得,就是先設定好 sum 的值
sum := 1
然後利用 for sum < 5的方式讓程式碼可以有迴圈的效果
for sum < 5 {
sum += sum
}
不過跟典型的 while 迴圈還是有點差別,畢竟其他語法的 while 迴圈幾乎都非常相似,如以下所示
C 語言的 while 迴圈
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
Java 語言的 while 迴圈
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
可以兩個語法的 while 迴圈方式簡直是一模一樣,雖然 Go 也滿像的了,但是就還是有稍微的不同
我當初會想做這一站其實只是因為好奇心而已,因為我真的太好奇了,一個敢號稱只有一個迴圈的程式語言,我真的太好奇了
一方面是好奇它應該怎麼去應對各種其他可能使用 while 迴圈會比較好解決的問題,那它會如何克服?
一方面又很好奇真的沒有其他迴圈了嗎? 於是我就找到了網站上的資料,也來跟大家進行分享
A Tour of Go : For is Go's "while"
https://go.dev/tour/flowcontrol/3
Java while
https://www.w3schools.com/java/java_while_loop.asp
C while
https://www.w3schools.com/c/c_while_loop.php