if
基本用法
var score = 93
if score < 60 {
fmt.Println("不及格")
} else if score < 80 {
fmt.Println("C")
} else if score < 90 {
fmt.Println("B")
} else if score < 100 {
fmt.Println("A")
} else {
fmt.Println("满分")
}
注意:go的if后面的表达式不需要括号
go的if有更高级的用法,在判断的同时,使用结果进行判断,例如下面的读文件代码
const filename = "D:\\goland_project\\go_base\\basic\\abc.txt"
//contents, err := ioutil.ReadFile(filename)
//
//if err != nil {
// fmt.Println("error", err)
//} else {
// fmt.Printf("%s\n", contents)
//}
//更简洁的写法
if contents, err := ioutil.ReadFile(filename); err != nil {
fmt.Println("error", err)
} else {
fmt.Printf("%s\n", contents)
}
switch
package main
import "fmt"
func eval(a, b int, op string) int {
var result int
switch op {
case "+":
result = a + b
case "-":
result = a - b
case "*":
result = a * b
case "/":
result = a / b
default:
panic("错误的运算符")
}
return result
}
// switch后面也可以不加判断表达式
func grade(score int) string {
switch {
case score < 60:
return "F"
case score < 80:
return "C"
case score < 90:
return "B"
case score < 60:
return "A"
}
return "error"
}
func main() {
r := eval(1, 2, "+")
fmt.Println(r)
var grad = grade(79)
fmt.Println(grad)
}
for
基本用法
sum := 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
for也可以不用起始条件,例如读文件
const filename = "D:\\goland_project\\go_base\\basic\\abc.txt"
file, err := os.Open(filename)
if (err != nil) {
panic(err)
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
死循环
go没有while关键字,如果实现类似while的操作,可以用for关键字实现,例如死循环
//死循环
for {
fmt.Println("abc")
}