if条件结构
if条件和PHP的一直,就是条件没有用圆括号括住
package main
import "fmt"
func main() {
age := 30
if age >= 30 {
fmt.Println("30而立了老铁, 赶紧努力")
} else {
fmt.Println("青春就是浪")
}
}
// 特殊写法
// 作用域, age1变量此时只在if条件判断语句中生效
if age1 := 19; age > 8 {
fmt.Println(age1)
}
for循环
基本格式
package main
import (
"fmt"
"unicode"
)
func main() {
// 变种1, 变量在外部定义
i := 5
for ; i < 10; i++ {
fmt.Println(i)
}
// 变种2, 定义变量和增量在外部和内部去实现,不在for语句本上实现
i1 := 5
for i1 < 10 {
fmt.Println(i1)
i1++
}
// 变种3, 死循环
for {
i++
if i == 30 {
break
}
fmt.Println(i)
}
// for range循环, 专门循环字符串/数组/切片/map/通道(map和通道暂且不知道是什么)
// 有以下规律 1.数组/切片/字符串返回索引和值 2.map返回键和值 3.通道值返回通道内的值
s := "Hello杭州"
for _, v := range s {
if unicode.Is(unicode.Scripts["Han"], v) {
fmt.Printf("%c", v)
}
}
}
switch和goto
// 此时w的作用域只有switch内部
switch w := 1; w {
case 1:
fmt.Println(w)
case 2:
fmt.Println(123)
}
// switch变种
w := 1
switch {
case w > 0 && w < 2:
fmt.Println("123")
case w > 2 && w < 4:
fmt.Println("456")
}
// goto 跳转到指定table处
for i := 1; i <= 10; i++ {
for j := 1; j <= i; j++ {
if j+i == 10 {
goto XX
}
fmt.Printf("%v*%v=%v\t", i, j, i*j)
}
fmt.Println()
}
XX:
fmt.Println("over")
作业
package main
import (
"fmt"
"unicode"
)
func main() {
// 打印乘法表
for x := 1; x <= 9; x++ {
for y := 1; y <= x; y++ {
fmt.Printf("%d*%d=%d ", x, y, (x * y))
}
fmt.Println()
}
// 编写代码分别定义一个整型、浮点型、布尔型、字符串型变量,使用fmt.Printf()搭配%T分别打印出上述变量的值和类型。
a := 1
b := float32(1)
c := true
d := "字符串"
fmt.Printf("%T %b\n", a, a)
fmt.Printf("%T %v\n", b, b)
fmt.Printf("%T %v\n", c, c)
fmt.Printf("%T %v\n", d, d)
//编写代码统计出字符串"Hello杭州"中汉字的数量。
s := "Hello杭州"
count := 0
for _, v := range s {
if unicode.Is(unicode.Scripts["Han"], v) {
count++
}
}
fmt.Printf("\"%v\"字符串中汉字的数量是%v", s, count)
}