Golang 流程控制(if、switch、for、continue、break)

Golang 流程控制(if、switch)

if判斷

if

示例:

package main

import "fmt"

func main() {

	var yes string
	fmt.Print("有沒有賣西瓜的:")
	fmt.Scan(&yes)

	fmt.Print("老婆的想法:買十個包子")
	if yes == "y" || yes == "yes" || yes == "Y" || yes == "YES" {
		fmt.Println("和一個西瓜")
	}

	fmt.Println("老公的想法:")
	if yes == "y" || yes == "yes" || yes == "Y" || yes == "YES" {
		fmt.Println("買一個包子")
	} else {
		fmt.Println("買十個包子")
	}
}

\color{#FF0000}{標準輸出:}

F:\GO>go run f:\go\Process.go
有沒有賣西瓜的:y
老婆的想法:買十個包子和一個西瓜
老公的想法:
買一個包子

F:\GO>go run f:\go\Process.go
有沒有賣西瓜的:n
老婆的想法:買十個包子老公的想法:
買十個包子

elas if

示例:

package main

import "fmt"

func main() {
	fmt.Print("你的成績是:")
	var num int
	fmt.Scan(&num)
	if num > 90 {
		fmt.Println("A")
	}	else if num >= 80 {
		fmt.Println("B")
	}	else if num >= 70 {
		fmt.Println("C")
	}	else if num >= 60 {
		fmt.Println("D")
	}	else {
		fmt.Println("不及格")
	}
}

\color{#FF0000}{標準輸出:}

你的成績是:99
A

switch

單值判斷

package main

import (
	"fmt"
)

func main() {
	var yes string
	fmt.Print("有沒有賣西瓜的:")
	fmt.Scan(&yes)

	fmt.Print("老婆的想法:買十個包子")
	switch yes {
		case "y", "Y" :
			fmt.Println("和一個西瓜")
	}

	fmt.Println("老公的想法:")
	switch yes {
		case "y", "Y" :
			fmt.Println("買一個包子")
		default:
			fmt.Println("買十個包子")
	}
}

\color{#FF0000}{標準輸出:}

有沒有賣西瓜的:y
老婆的想法:買十個包子和一個西瓜
老公的想法:
買一個包子

多值

package main

import (
	"fmt"
)

func main()  {
	fmt.Print("你的成績是:")
	var num int
	fmt.Scan(&num)
	switch  {
		case num > 90:
			fmt.Println("A")
		case num >= 80:
			fmt.Println("B")
		case num >= 70:
			fmt.Println("C")
		case num >= 60:
			fmt.Println("D")
	default:
		fmt.Println("不及格")
	}
}

\color{#FF0000}{標準輸出:}

你的成績是:99
A

fot循環

for 循環

方法一

package main

import "fmt"

func main()  {
	//索引:記錄已經加到了多少
	//記錄結果
	
	result := 0

	//初始化子語句;條件子語句;後置子語句
	for i :=1 ; i <= 100 ; i++{
		result += i
	}
	fmt.Println(result)
}

\color{#FF0000}{標準輸出:}

5050

方法二

package main

import "fmt"

func main()  {
result := 0
	i := 0

	for i <= 100 {
		result += i
		i ++
	}
	fmt.Println(result)
}

\color{#FF0000}{標準輸出:}

5050

死循環

package main

import (
	"fmt"
)

func main()  {
	i := 0
	for {
		fmt.Println(i)
	}
}

\color{#FF0000}{標準輸出:}

0
0
··· ···
0

for range

package main

import "fmt"

func main()  {
	desc := "我愛中國"
	//i := 0
	for i , ch := range desc {
		fmt.Printf("%d, %T, %q\n", i, ch ,ch)
		i ++
	}
}

\color{#FF0000}{標準輸出:}

0, int32, '我'
3, int32, '愛'
6, int32, '中'
9, int32, '國'

continue、break

  • continue:結束本次循環進行下次循環
  • break:結束循環
import (
	"fmt"
)

func main() {
	fmt.Println("----continue----")
	for i := 0 ; i <= 5 ; i++ {
		if i == 4 {
			continue
			//跳出本次循環,進行下一次循環
		}
		fmt.Println(i)
	}
	fmt.Println("----break----")
	for i := 0 ; i <= 5 ; i++ {
		if i == 4 {
			break
			//終止循環
		}
		fmt.Println(i)
	}
}

\color{#FF0000}{標準輸出:}

----continue----
0
1
2
3
5
----break----
0
1
2
3

goto

goto打印1+2+3+…100

package main

import "fmt"

func main() {
	result, i := 0, 0
START:
	if i > 100 {
		goto FOREND
	}
	result += i
	i ++
	goto START
FOREND:
	fmt.Println(result)
}

\color{#FF0000}{標準輸出:}

5050

跳轉

package main

import "fmt"

func main() {
	fmt.Print("有沒有賣西瓜的:")
	var yes string
	fmt.Scan(&yes)
	fmt.Print("老婆的想法:買十個包子")
	if yes != "Y" && yes != "y" {
		goto  END
	}
	fmt.Print("和一個西瓜!")
END:

\color{#FF0000}{標準輸出:}

F:\GO>go run f:\go\goto.go
有沒有賣西瓜的:y
老婆的想法:買十個包子和一個西瓜!
F:\GO>go run f:\go\goto.go
有沒有賣西瓜的:n
老婆的想法:買十個包子

break跳轉

  • 跳轉標籤需要定義在循環體前面
package main

import "fmt"

func main() {
BREAKEND:
	for i := 0  ; i < 3 ; i++  {
		for j := 0 ; j < 3 ; j++ {
			if i * j == 4 {
				break BREAKEND
			}
			fmt.Println(i, j , i * j)
		}
	}
}

\color{#FF0000}{標準輸出:}

0 0 0
0 1 0
0 2 0
1 0 0
1 1 1
1 2 2
2 0 0
2 1 2
package main

import (
	"fmt"
)

func main() {
	var j,i = 1,1
		for  j <= 9 {
			if i == j {
				fmt.Printf("%v %v %v %v %v\t", i, "*", j, "=", i*j)
				j++
				//fmt.Print(i,j)
			} else if i < j {
				fmt.Printf("%v %v %v %v %v\t", i, "*", j, "=", i*j)
				i++
				//fmt.Println(i,j)
			}
		}
}

練習
打印乘法口訣

package main

import "fmt"

func main() {
	for i :=1 ; i < 10 ; i ++ {
		for j :=1 ; j < 10 ; j++ {
			fmt.Print(j, "*",i , "=", i * j, "\t")
			if i == j {
				fmt.Println()
				break
			}

		}
	}
}

\color{#FF0000}{標準輸出:}

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=12  4*4=16
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章