main.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package main
  2. import "fmt"
  3. func main() {
  4. // 1. 单条件判断:条件为 true 时,执行大括号中的代码。
  5. // Go 的条件不需要圆括号,但大括号不能省略。
  6. fmt.Println("=== 单条件判断 ===")
  7. age := 20
  8. if age >= 18 {
  9. fmt.Printf("年龄:%d,已成年\n", age)
  10. }
  11. // 2. 二选一:条件成立执行 if,否则执行 else。
  12. // else 必须和前面的右大括号 } 写在同一行。
  13. fmt.Println("\n=== 是否及格 ===")
  14. score := 75
  15. if score >= 60 {
  16. fmt.Printf("分数:%d,及格\n", score)
  17. } else {
  18. fmt.Printf("分数:%d,不及格\n", score)
  19. }
  20. // 3. 多分支:从上往下判断,只执行第一个满足条件的分支。
  21. // 先排除非法分数,再按分数从高到低判断,避免优秀被及格分支截走。
  22. fmt.Println("\n=== 成绩等级 ===")
  23. if score < 0 || score > 100 {
  24. fmt.Println("分数无效,应在 0~100 之间")
  25. } else if score >= 90 {
  26. fmt.Println("等级:优秀")
  27. } else if score >= 80 {
  28. fmt.Println("等级:良好")
  29. } else if score >= 60 {
  30. fmt.Println("等级:及格")
  31. } else {
  32. fmt.Println("等级:不及格")
  33. }
  34. // 4. 逻辑运算:&& 是并且,|| 是或者,! 是取反。
  35. fmt.Println("\n=== 逻辑运算 ===")
  36. hasTicket := true
  37. isClosed := false
  38. if age >= 18 && hasTicket && !isClosed {
  39. fmt.Println("已成年、有票且未闭馆,可以入场")
  40. } else {
  41. fmt.Println("暂时不能入场")
  42. }
  43. isWeekend := false
  44. isHoliday := true
  45. if isWeekend || isHoliday {
  46. fmt.Println("周末或节假日,可以安排休息")
  47. }
  48. // 5. 比较运算:== 判断相等,!= 判断不相等。
  49. // = 是赋值,不是判断相等。
  50. fmt.Println("\n=== 相等与不相等 ===")
  51. language := "Go"
  52. if language == "Go" {
  53. fmt.Println("当前学习的语言是 Go")
  54. }
  55. if score != 100 {
  56. fmt.Println("本次成绩不是满分")
  57. }
  58. // 6. Go 的条件必须是 bool,不能像 C 一样用整数表示真假。
  59. fmt.Println("\n=== 显式布尔条件 ===")
  60. count := 1
  61. // if count { } // 错误:int 不能直接作为条件。
  62. if count != 0 {
  63. fmt.Println("数量不为零")
  64. }
  65. }