• 顺序控制 • 分支控制(嵌套分支最好控制在三层内) • 循环控制(多重循环最好控制三层内)
fallthrough:穿透下一层,执行下一层,不考虑是否满足条件
package main
import "fmt"
func main() {
var year int
fmt.Print("请输入一个年份:")
fmt.Scanln(&year)
if year%400 == 0 || (year%4 == 0 && year%100 != 0) {
fmt.Printf("%d 是闰年", year)
} else {
fmt.Printf("%d 不是闰年", year)
}
}
package main
import "fmt"
func main() {
var a = 10
switch {
case a == 11:
fmt.Println(11)
fallthrough // 穿透下一层,执行下一层,不考虑是否满足条件
case a < 11:
fmt.Println(10)
fallthrough
default:
fmt.Println(12)
}
switch a {
case 11:
fmt.Println(11)
case 10:
fmt.Println(10)
default:
fmt.Println(12)
}
switch b := 12; {
case b == 11:
fmt.Println(11)
case b < 11:
fmt.Println(10)
default:
fmt.Println(12)
}
var x interface{}
x = "astring"
switch t := x.(type) {
case nil:
fmt.Printf("%T\n", t)
fmt.Println("nil")
case string:
fmt.Printf("%T\n", t)
fmt.Print("string")
default:
fmt.Println(t)
}
}
package main
import "fmt"
func main() {
var c byte
fmt.Println("请输入一个字符:")
fmt.Scanf("%c\n", &c)
switch c {
case 'a':
fmt.Println("A")
case 'b':
fmt.Println("B")
case 'c':
fmt.Println("C")
case 'd':
fmt.Println("D")
default:
fmt.Println("other")
}
}
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
fmt.Println("hello i", i)
}
j := 1
for ; j <= 10; j++ {
fmt.Println("hello j", j)
}
m := 1
for j <= 10 {
fmt.Println("hello m", m)
m++
}
for k := range []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} {
fmt.Println("hello k", k)
}
l := 1
for {
if l > 10 {
break
}
fmt.Println("hello l", l)
l++
}
}
package main
import "fmt"
import "unsafe"
func main() {
s := "abcdef"
for index, value := range s {
fmt.Printf("%d: %c %d\n", index, value, unsafe.Sizeof(value))
}
s1 := "abc中文字符串"
for index, value := range s1 {
fmt.Printf("%d: %c %d\n", index, value, unsafe.Sizeof(value))
}
for index, value := range []byte(s1) { // []byte 类型字符串中文长度不够显示乱码
fmt.Printf("%d: %c %d\n", index, value, unsafe.Sizeof(value))
}
for index, value := range []rune(s1) {
fmt.Printf("%d: %c %d\n", index, value, unsafe.Sizeof(value))
}
}
package main
import "fmt"
func main() {
/*
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
*/
for i := 1; i < 10; i++ {
for j := 1; j < i+1; j++ {
fmt.Printf("%d * %d = %d\t", j, i, i*j)
}
fmt.Println()
}
}
package main
import (
"fmt"
"math/rand"
)
func main() {
count := int64(0)
for {
// rand.Seed(time.Now().UnixNano())
// rand.Seed(123)
rand.Seed(count)
n := rand.Intn(100) + 1
fmt.Println(n)
count++
if n == 99 || count > 100 {
break
}
}
fmt.Println(count)
}