24 Go 条件控制语句if/else

if else 使用注意事项
1 if后的括号()可以使用也可以省略,建议省略
2 {}和else不能另起一行单独书写,会编译不通过syntax error: unexpected newline, expecting { after if clause
3 多分支控制语句,只能执行其中一个分支,即找到一个满足条件的分支就会只执行这个分支下的内容,不再执行分支
4 else不是必须的
5 在条件语句之前可以有一个语句,任何在这里声明的变量都可以在所有条件分支中使用
 
1 // 练习题1 
2 // 声明两个float64变量,并赋值,判断第一个数大于10.0,第二个数小于20.0,满足条件则打印两数之和
3 var f1 float64 = 11.5
4 if f2 := 19.2; f1 > 10.0 && f2 < 20.0 {
5     fmt.Printf("两数之和为: %f \n", f1 + f2) // 两数之和为: 30.700000
6 }

 

1 // 练习题2
2 // 定义两个变量int32,判断两者之和,是否又能被3整除,又能被5整除
3 var i1 int32 = 40
4 var i2 int32 = 20
5 if (i1 + i2)%3 == 0 && (i1 + i2)%5 == 0 {
6     fmt.Printf("两数之和为 %d \n", i1 + i2) // 两数之和为 60
7 }

 

 1 // 练习题
 2 // 岳不群给他儿子岳立群定了一个考试奖惩机制,详细如下
 3 // 考满分奖励外星人笔记本一台
 4 // 考90-99分,奖励爱疯13一台
 5 // 考80-90,奖励运动手表一块
 6 // 考70-80,奖励运动手环一个
 7 // 考70分以下,奖励七匹狼三下
 8 var score int8
 9 fmt.Println("请输入岳立群的分数:")
10 fmt.Scanln(&score)
11 
12 if (score == 100) {
13     fmt.Printf("考了 %d 分,奖励外星人笔记本一台! \n", score)
14 } else if score >= 90 {
15     fmt.Printf("考了 %d 分,奖励爱疯13一台! \n", score)
16 } else if score >= 80 {
17     fmt.Printf("考了 %d 分,奖励运动手表一块! \n", score)
18 } else if score >= 70 {
19     fmt.Printf("考了 %d 分,奖励运动手环一个! \n", score)
20 } else {
21     fmt.Printf("考了 %d 分,考砸了,奖励七匹狼三下! \n", score)
22 }

 

 

 1 /* 习题
 2 求ax²+bx+c=0方程的根。a,b,c分别为函数的参数,如果:
 3 b²-4ac>0,则有两个解;
 4 b²-4ac=0,则有一个解;
 5 b²-4ac<0,则无解;
 6 
 7 提示1:
 8     x1=(-b+sqrt(b²-4ac))/2a
 9     x2=(-b-sqrt(b²-4ac))/2a
10 提示2:
11     math.Sqrt(num)可以求平方根,需要引入math包
12 
13 测试数据:a=3,b=100,c=6
14 */
15 var a,b,c float64
16 a = 3
17 b = 100
18 c = 6
19 result := b*b -4*a*c
20 if result > 0 {
21     x1 := (-b + math.Sqrt(b*b - 4*a*c)) / (2*a)
22     x2 := (-b - math.Sqrt(b*b - 4*a*c)) / (2*a)
23     fmt.Printf("当前有两个解分别为: %f和%f \n",x1,x2) // 当前有两个解分别为: -0.060108和-33.273225
24 } else if (result == 0) {
25     x1 := (-b + math.Sqrt(b*b - 4*a*c)) / (2*a)
26     x2 := (-b - math.Sqrt(b*b - 4*a*c)) / (2*a)
27     fmt.Printf("当前有一个解为: %f和%f \n",x1,x2)
28 } else {
29     fmt.Println("无解")
30 }

 

 

 1 /*
 2 出票系统
 3 根据淡旺季的月份和年龄,打印票价
 4 4~10月为旺季:
 5     成人[18,60]岁,票价60元
 6     儿童[0,18)岁,票价30
 7     老人[60,],票价20
 8 淡季:
 9     成人,票价40
10     其他,票价20
11 */
12 var month int8 // 当前月份
13 var age uint8 // 用户年龄
14 fmt.Println("请输入当前月份:")
15 fmt.Scanln(&month)
16 fmt.Println("请输入用户年龄:")
17 fmt.Scanln(&age)
18 
19 if month >= 4 && month <= 10 {
20     // 旺季
21     if age >= 60 {
22         // 老人
23         fmt.Println("老人,票价20元")
24     } else if age >= 18 {
25         // 成人
26         fmt.Println("成人,票价60元")
27     } else {
28         // 儿童
29         fmt.Println("儿童,票价30元")
30     }
31 } else {
32     // 淡季
33     if age >= 18 && age < 60 {
34         // 成人
35         fmt.Println("成人,票价40元")
36     } else {
37         // 其他
38         fmt.Println("成人,票价20元")
39     }
40 }

 

 

 

 

posted @ 2022-06-27 22:11  风铃如沧海  阅读(72)  评论(0编辑  收藏  举报