// GO 语言 条件判断 if 也类似 c++ / JAVA 但是没有 ()
package main
import (
"fmt"
"runtime"
)
/* 打印 10 次 true */
func ptrue() {
i :=0
for {
fmt.Println("true") // 打印 10 次 true
i++
if i >= 10 { // i 大于等于 10 的时候退出 for 循环
break
}
}
}
/* 数值判断 */
func testNum(i int) {
if i < 10 {
fmt.Println("i < 10")
} else if i < 20 {
fmt.Println("i < 20")
} else {
fmt.Println("Haha!")
}
}
/* 系统判断 */
func testOS() {
fmt.Printf("Go Run on : ")
os := runtime.GOOS
switch os {
case "darwin" :
fmt.Println("OS X.")
/*no break here*/
case "linux":
fmt.Println("Linux.")
default:
fmt.Printf("%s", os)
}
fmt.Printf("\n")
}
/*
* switch 没有条件 等同于 switch true, 可以用来替代很长的 if - else if 语言
* case 后面可以同时指定多个满足的条件
* go 里面的 switch case 不需要使用 break
*/
func rank() {
var grade string = "B"
var marks int = 90
switch marks {
case 90:
grade = "A"
case 80:
grade = "B"
case 70, 60 :
grade = "C"
default:
grade = "D"
}
fmt.Printf("grade = %s\n", grade)
switch {
case grade == "A":
fmt.Println("优秀!")
case grade == "B":
fmt.Println("良好!")
case grade == "C":
fmt.Println("及格!")
default:
fmt.Println("不及格!")
}
}
func main() {
ptrue()
testNum(9)
testNum(15)
testNum(30)
testOS()
rank()
}
输出:
C:\Go\bin\go.exe run C:\Go\src\flag\s1.go
true
true
true
true
true
true
true
true
true
true
i < 10
i < 20
Haha!
Go Run on : windows
grade = A
优秀!