Go学习笔记03-结构控制
程序员文章站
2024-01-07 19:59:34
[toc] 条件语句 条件语句用 if 关键字来判定条件,如: for省略初始条件(及递增条件), 相当于while语句 初始条件、结束条件、递增表达式都省略是是一个死循环 Go中没有while语句 ......
目录
条件语句
条件语句用 if 关键字来判定条件,如:
func bounded(v int) int { if v > 100 { return 100 } else if v < 0 { return 0 } else { return v } }
判断条件 不用圆括号 括起来
判定条件里可以赋值,赋值变量的作用域仅限于这个if语句块里。
switch语句
func grade(score int) string { g := "" switch { case score < 0 || score > 100: //当程序出错时,panic会中断程序运行 panic(fmt.sprintf( "wrong score: %d", score)) case score < 60: g = "f" case score < 80: g = "c" case score < 90: g = "b" case score <= 100: g = "a" } return g }
go语言中case不用break结束。
switch后可以没有条件,在case后进行条件判定。
循环语句
代码示例:
sum := 0 for i:= 1;i <= 100 ;i++ { sum += i }
- for语句的条件也不需要用括号括起来
- 可以 省略 初始条件、结束条件、递增表达式
package main import( "bufio" "fmt" "os" "strconv" ) func converttobin(n int) string { bin := "" //省略初始条件,相当于while语句 for ; n > 0; n /= 2{ lsb := n % 2 bin = strconv.itoa(lsb) + bin } return bin } func readfile(filename string) { file, err := os.open(filename) if err != nil{ panic(err) } scanner := bufio.newscanner(file) for scanner.scan(){ fmt.println(scanner.text()) } } func main() { fmt.println(converttobin(13), converttobin(5)) readfile("file.txt") }
- for省略初始条件(及递增条件),相当于while语句
- 初始条件、结束条件、递增表达式都省略是是一个死循环
- go中没有while语句