Go开发之路 -- 流程控制

时间:2024-05-23 09:37:44

1. if else

if 条件 {

} else {    // else必须写在这里

}
// 写一个程序, 从终端读取输入, 并转成整数. 如果转成整数出错,
// 则输出'can not convert to int', 并返回.否则输出该整数 package main import (
"fmt"
"strconv"
) func main() {
var s string
fmt.Scanf("%s", &s)
res, err := strconv.Atoi(s)
if err != nil {
fmt.Println("can not convert to int.err: ", err)
return
}
fmt.Println(res) }

练习 10

2. swith case

swith var {
case var1: case var2: case var3: default: }
// 猜数字, 写一个程序,随机生成一个0 到100 的整数n,
// 然后用户在终端输入数字,如果和n 相等,则提示用户猜对了
// 如果不相等,则提示用户,大于还是小于n package main import (
"fmt"
"math/rand"
) func main(){
n := rand.Intn()
flag := true
for flag {
var number int
fmt.Scanf("%d\n", &number)
switch {
case number == n:
fmt.Println("猜对了.")
flag = false
case number > n:
fmt.Println("大了.")
case number < n:
fmt.Println("小了.")
} }
}

练习11

3. for 语句

/*
写一个程序, 在终端打印如下图形:
A
AA
AAA
AAAA
AAAAA
*/ package main import (
"fmt"
"strings"
) func main() {
var s string = "A"
for i := ; i < ; i++ {
res := strings.Repeat(s, i)
fmt.Println(res)
}
}

练习 12

4. for range

5. break continue

package main

import "fmt"

func main(){
str := "hello, 中国"
for index, value := range str {
fmt.Println(index, value) // 打印的值是ASCII码
fmt.Printf("index[%d], value[%c], len[%d]\n", index, value, len([]byte(string(value))))
} for index, value := range str {
if index > {
continue
}
if index > {
break
}
fmt.Println(index, value)
}
}

6. goto和label语句

package main

func main() {
i :=
HERE:
print(i)
i++
if i == {
return
}
goto HERE
}