go的双分支控制

本文介绍了Go语言中的条件判断语句`if`的使用,包括基本语法、实战示例和双分支流程图分析。通过编写程序判断年龄、数值比较等,展示了如何根据条件执行不同代码块。同时,文章还提供了多个代码测试案例,涵盖了单分支、双分支的错误用法及正确实现,并给出了相关程序设计练习,涉及整数和浮点数的加法、整除判断以及闰年检查等实际问题。

一 基本语法

if 条件表达式{
    执行代码块1
} else {
    执行代码块2
}

说明:当条件表达式成立,即执行代码块1,否则执行代码块2。{}也是必须的。

二 实战

1 要求

编写一个程序,可以输入人的年龄, 如果该同志的年龄大于 18 岁,则输出“你年龄大于 18,要对自己的行为负责!”。否则 ,输出"你的年龄不大这次放过你了."

2 代码

package main

import (
   "fmt"
)

func main() {
   // 代码
   var age int
   fmt.Println("请输入年龄:")
   fmt.Scanln(&age)

   if age > 18 {
      fmt.Println("你年龄大于18~....")
   } else {
      fmt.Println("你的年龄不大这次放过你了")
   }
}

3 测试

请输入年龄:
19
你年龄大于18~....

三 双分支的流程图以及分析总结

1 流程图

2 对双分支的总结

a 从上图看,条件表达式就是 age >18。

b 执行代码块 1 执行 fmt.Println("你的年龄大于 18") 

c 执行代码块 2 执行 fmt.Println("你的年龄不大....")

d 强调一下,双分支只会执行其中的一个分支。

四 单分支和双分支的案例

1 对下面代码,若有输出,指出输出结果。

package main

import "fmt"

func main() {
   var x int = 4
   var y int = 1
   if x > 2 {
      if y > 2 {
         fmt.Println(x + y)
      }
      fmt.Println("hello")
   } else {
      fmt.Println("x is ", x)
   }
}

测试结果

hello

2 对下面代码,若有输出,指出输出结果。

package main

import "fmt"

func main() {
   var x int = 4
   if x > 2 {
      fmt.Println("ok")
   }
   else {
      fmt.Println("hello")
   }
}

测试结果

编译错误,原因是 else 不能换行。

3 对下面代码,若有输出,指出输出结果。

package main

import "fmt"

func main() {
   var x int = 4
   if x > 2
      fmt.Println("ok")
   else
      fmt.Println("hello")
}

测试结果

编译错误,原因是没有 {}。

4 对下面代码,若有输出,指出输出结果。

package main

import "fmt"

func main() {
   var x int = 4
   if x > 2 {
      fmt.Println("ok")
   } else {
      fmt.Println("hello")
   }
}

测试结果

ok

虽然正确,但是要求写成 if x > 2

5 编写程序,声明 2 个 int32 型变量并赋值。判断两数之和,如果大于等于 50,打印"hello world!"

6 编写程序,声明 2 个 float64 型变量并赋值。判断第一个数大于 10.0,且第 2 个数小于 20.0,打印两数之和。

7 定义两个变量 int32,判断二者的和,是否能被 3 又能被 5 整除,打印提示信息。

8 判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被 4 整除,但不能被 100整除;(2)能被 400 整除。

代码

package main

import (
   "fmt"
)

func main() {
   fmt.Println("====================第五题================================")
   // 编写程序,声明2个int32型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!”
   var n1 int32 = 10
   var n2 int32 = 50
   if n1+n2 >= 50 {
      fmt.Println("hello,world")
   }
   fmt.Println("====================第六题================================")
   // 编写程序,声明2个float64型变量并赋值。判断第一个数大于10.0, 且第2个数小于20.0,打印两数之和
   var n3 float64 = 11.0
   var n4 float64 = 17.0
   if n3 > 10.0 && n4 < 20.0 {
      fmt.Println("和=", (n3 + n4))
   }
   fmt.Println("====================第七题================================")
   // 定义两个变量int32,判断二者的和,是否能被3又能被5整除,打印提示信息
   var num1 int32 = 10
   var num2 int32 = 5
   if (num1+num2)%3 == 0 && (num1+num2)%5 == 0 {
      fmt.Println("能被3又能被5整除")
   }
   fmt.Println("====================第八题================================")
   // 判断一个年份是否是闰年,闰年的条件是符合下面二者之一:
   // (1)年份能被4整除,但不能被100整除;(2)能被400整除
   var year int = 2020
   if (year%4 == 0 && year%100 != 0) || year%400 == 0 {
      fmt.Println(year, "是闰年~")
   }
}

测试结果

====================第五题================================
hello,world
====================第六题================================
和= 28
====================第七题================================
能被3又能被5整除
====================第八题================================
2020 是闰年~

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值