![](https://img.haomeiwen.com/i17476301/df2c33f32b7af11d.png)
![](https://img.haomeiwen.com/i17476301/87db234b468d22ef.png)
package main
import "fmt"
//14
func main() {
/*
条件语句:if
语法格式:
if 条件表达式 {
//
}
*/
// 1.给定一个数字,如果大于10,就输出打印
num := 16
if num > 10 {
fmt.Println("大于10")
}
fmt.Println("main over...")
}
![](https://img.haomeiwen.com/i17476301/fb8daa119bfe21f2.png)
if...else...语句
/*
if...else 语句
if 条件 {
//条件成立
A段代码
}else {
//条件不成立
B段代码
}
if后的{,一定是和if条件写在同一行的
else 一定是if语句 } 之后,不能自己另起一行
if和else的内容任选其一执行
*/
if语句的嵌套
/*
if语句嵌套
if 条件 {
//条件成立
A段代码
}else {
if 条件2{
B段代码
}else{
C段
}
}
if 条件1{
A段
}else if 条件2{
B段
}else{
C段
}
*/
if语句其他写法
/*
其他写法:
if 初始化语句 ; 条件{
}
作用域只能在if条件中
*/
if num:=4 ; num>0{
fmt.Println("正数")
}
switch语句:“开关”
![](https://img.haomeiwen.com/i17476301/2d50f39ac126cb42.png)
![](https://img.haomeiwen.com/i17476301/d95844fd12d63203.png)
package main
import "fmt"
//15
func main() {
/*
switch语句:
switch 变量名 {
case 数值1:分支1
case 数值2:分支2
case 数值3:分支3
...
default:
最后一个分支
}
注意事项:
1. switch可以作用在其他类型上,case后的数值必须和switch的变量类型一致
2. case无序,default也可以放在最前面,也会正确比对
3. case后的数值是唯一的
*/
num := 3
switch num {
default:
fmt.Println("数据错误")
case 1:
fmt.Println("第一季度")
case 2:
fmt.Println("第二季度")
case 3:
fmt.Println("第三季度")
case 4:
fmt.Println("第四季度")
}
fmt.Println("main over")
}
![](https://img.haomeiwen.com/i17476301/000834e35c4a2f21.png)
switch的其他用法
package main
import "fmt"
//15
func main() {
/*
switch语句:
switch 变量名 {
case 数值1:分支1
case 数值2:分支2
case 数值3:分支3
...
default:
最后一个分支
}
注意事项:
1. switch可以作用在其他类型上,case后的数值必须和switch的变量类型一致
2. case无序,default也可以放在最前面,也会正确比对
3. case后的数值是唯一的
*/
num := 3
switch num {
default:
fmt.Println("数据错误")
case 1:
fmt.Println("第一季度")
case 2:
fmt.Println("第二季度")
case 3:
fmt.Println("第三季度")
case 4:
fmt.Println("第四季度")
}
fmt.Println("main over")
/*
其他写法:
省略switch后的变量,相当于直接作用在true上
*/
score := 88
switch {
case score >= 80 && score <= 100:
fmt.Println("优秀")
case score < 80 && score >= 60:
fmt.Println("及格")
default:
fmt.Println("不及格")
}
/*
case后可以同时跟随多个数值
*/
letter := 'A'
switch letter {
case 'A','E','I','O','U':
fmt.Println("元音")
default:
fmt.Println("辅音")
}
/*
switch后可以多一条初始化语句
switch 初始化语句 ; 变量{
}
*/
switch language := "golang" ; language {
case "golang":
fmt.Println("go")
case "java":
fmt.Println("java")
}
}
![](https://img.haomeiwen.com/i17476301/9df3044670113364.png)
switch的break和fallthrough
![](https://img.haomeiwen.com/i17476301/39a9f2e9f04534e1.png)
package main
import "fmt"
//16
func main() {
/*
switch的break和fallthrough
break:可以使用在switch中,也可以使用在for循环中
强制结束case语句,从而结束switch分支
fallthrough:
穿透switch,某个case匹配成功,就执行该case
如果遇到fallthrough,那么后面紧跟的case,无需匹配,直接穿透执行
注意:只能在某个case的最后一行
*/
n := 2
switch n {
case 1:
fmt.Println("我是熊大")
fmt.Println("我是熊大")
fmt.Println("我是熊大")
case 2:
fmt.Println("我是熊二")
fmt.Println("我是熊二")
break
fmt.Println("我是熊二")
}
fmt.Println("main over")
m := 2
switch m {
case 1:
fmt.Println("第一季度")
case 2:
fmt.Println("第二季度")
fallthrough
case 3:
fmt.Println("第三季度")
case 4:
fmt.Println("第四季度")
}
}
![](https://img.haomeiwen.com/i17476301/87882684ac70d2d3.png)
for循环
![](https://img.haomeiwen.com/i17476301/e054edb963f7e204.png)
package main
import "fmt"
//17
func main() {
/*
for循环
某些代码多次执行
for 表达式1;表达式2;表达式3 {
//循环体
}
*/
for i := 1;i <= 5;i++ {
//循环体
fmt.Println("Hello World")
}
}
![](https://img.haomeiwen.com/i17476301/8006a8c962bb4c3a.png)
for循环其他表达形式
/*
其他形式
for 表达式2 {
//相当于while循环
}
作用域有所不同
*/
i := 1
for i<=5 {
fmt.Println("hello")
i++
}
/*
省略三个表达式
for {
}
相当于直接作用在 true 上
*/
for {
fmt.Println("i------>", i)
i++
}
/*
省略哪几个表达式都可以
省略1:定义在外面
省略2:循环永远成立
省略3:变量变化写在里面
*/
break和continue
![](https://img.haomeiwen.com/i17476301/6a56046ec3a7562c.png)
![](https://img.haomeiwen.com/i17476301/4d307507ffe4bddc.png)
默认结束里层循环,想结束外层循环可以通过贴标签的形式
out:for i:=1;i<=5;i++ {
for j:=1;j<=5;j++ {
if j==2 {
break out
}
fmt.Printf("i:%d,j:%d",i,j)
}
}
![](https://img.haomeiwen.com/i17476301/986b3ca40e8b4e4a.png)
continue也是
goto语句
![](https://img.haomeiwen.com/i17476301/6cce49bb4fd3b098.png)
package main
import "fmt"
//18
func main() {
/*
goto语句:
*/
var a = 10
LOOP:
for a < 20 {
if a==15 {
a += 1
goto LOOP
}
fmt.Printf("a的值为:%d\n", a)
a++
}
}
![](https://img.haomeiwen.com/i17476301/21f30947b5b6b9be.png)
生成随机数
package main
import (
"fmt"
"math/rand"
"time"
)
//19
func main() {
/*
生成随机数random:
伪随机数,根据一定的算法公式算出来的
math/random
*/
num1 := rand.Int()
fmt.Println(num1) //5577006791947779410
for i:=0;i<10;i++ {
num := rand.Intn(10) //[0,9]
fmt.Println(num)
}
//没有修改种子数,每次运行的结果都是一样的
rand.Seed(1)
num2 := rand.Intn(10)
fmt.Println("---->",num2)
//想每次生成的随机数不同,就得不停的改变种子
//时间就是不断改变的
t1 := time.Now()
fmt.Println(t1)
fmt.Printf("%T\n",t1)
//将时间转换成整数
//时间数:指定时间,距离1970年1月1日0点0分0秒,之间的时间差值:秒,毫秒
timeStamp1 := t1.Unix() //秒
fmt.Println(timeStamp1)
timeStamp2 := t1.UnixNano() //纳秒
fmt.Println(timeStamp2)
//设置种子数,可以设置成时间戳
rand.Seed(time.Now().UnixNano())
for i:=0;i<10;i++ {
//使用生成随机数的函数
fmt.Println("----->",rand.Intn(100))
}
//获取指定范围内随机数 [3,48]
/*
Intn(n) // [0,n)
*/
num3 := rand.Intn(46)+3 //[3,48]
fmt.Println(num3)
}
![](https://img.haomeiwen.com/i17476301/4dad0217610cb8a9.png)
网友评论