流程式控制制 選擇結構(分支語句) 因為switch只能匹配固定值,推薦使用if-else做條件篩選 if-else判斷 package main import "fmt" func main() { var tmpA int fmt.Scanln(&tmpA) if tmpA >= 90 { fm ...
流程式控制制
選擇結構(分支語句)
因為switch只能匹配固定值,推薦使用if-else做條件篩選
if-else判斷
package main
import "fmt"
func main() {
var tmpA int
fmt.Scanln(&tmpA)
if tmpA >= 90 {
fmt.Println("tmpA >= 90")
} else if tmpA < 90 && tmpA >= 60 {
fmt.Println("tmpA < 90 && tmpA >= 60")
} else {
fmt.Println("tmpA < 60")
}
}
switch判斷
switch語句執行的過程從上至下,知道找到匹配項,匹配項後面也不需要再加break,case之後預設添加break
package main
import "fmt"
// switch 後面如果什麼都不跟,就會預設為bool類型,值為true
func main() {
var tmpA int
fmt.Scanln(&tmpA)
switch tmpA {
case 90:
fmt.Println("tmpA = 90")
case 80:
fmt.Println("tmpA = 80")
default:
fmt.Println("default")
}
}
fallthrough穿透(和break相反)
switch預設情況下匹配成功後就不會執行其他case,如果我們需要執行後面的case,可以使用fall through穿透實現,它會強制執行後面的語句,並不會判斷後面case表達式是否匹配
package main
import "fmt"
func main() {
var tmpA int
fmt.Scanln(&tmpA)
switch tmpA {
case 90:
fmt.Println("tmpA = 90")
fallthrough
case 80:
fmt.Println("tmpA = 80")
fallthrough
default:
fmt.Println("default")
}
}
迴圈結構(for迴圈)
package main
import "fmt"
func main() {
// 迴圈的條件判斷沒有括弧,同樣break和continue使用同c語言一樣
for i := 0; i < 10; i++ {
if i == 4 {
continue // 結束當前迴圈
} else if i == 6 {
break // 結束整個迴圈
}
fmt.Print(i)
}
}
string
go語言中的字元串是一個位元組的切片,可以通過將其內容封裝在“”中來創建字元串,go語言中字元串編碼相容Unicode,且使用UTF-8編碼,是一些位元組的集合
package main
import "fmt"
func main() {
// string 是不能被單獨修改裡面的某一位的
str := "string example"
fmt.Println(str)
// 獲取字元串長度
fmt.Println("字元串長度為: ", len(str))
// 獲取指定的位元組(直接獲得的是Ascll編碼)
fmt.Println("獲取指定的位元組:", str[2])
// 格式化輸出指定位元組
fmt.Printf("獲取指定的位元組: %c \n", str[2])
// 使用for迴圈遍歷字元串
for i := 0; i < len(str); i++ {
fmt.Printf("遍歷字元串: %c\n", str[i])
}
// for range迴圈,用於遍曆數組以及切片....
// i:字元串下標
// v:當前下表對應的值,可以直接使用
for i, v := range str {
fmt.Printf("i = %d,v = %c \n", i, v)
}
}