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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具