iT邦幫忙

2023 iThome 鐵人賽

DAY 19
1
Software Development

關於我轉生變成 Go 初學者的這檔事系列 第 19

Day19-[第十八站 : Go 你是while ? 還是 for ?]<GOO~

  • 分享至 

  • xImage
  •  

前言

相信大家看到這個標題就知道我們這一站的主題要說什麼了,不過大家是否會疑惑因為我在前面才剛說過 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 迴圈會比較好解決的問題,那它會如何克服?

  • 一方面又很好奇真的沒有其他迴圈了嗎? 於是我就找到了網站上的資料,也來跟大家進行分享

下一站~ Go Switch ? 要玩遊戲 ?

資料來源

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


上一篇
Day18-[第十七站 : Go 迴圈基本功的應用]<GOO~
下一篇
Day20-[第十九站 : Go Switch ? 要玩遊戲 ?(一)]<GOO~
系列文
關於我轉生變成 Go 初學者的這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言