3.1.2 双分支if/else语句

双分支if/else语句的语法形式如下所示:

双分支if/else语句的执行流程如图3.2所示。

if/else语句是一种双分支结构。先判断条件表达式值的真假。如果条件表达式的结果为真(包括非零、非空),则执行语句体1中的操作;如果条件表达式为假(包括零、空),则执行语句体2中的操作。语句体1和语句体2既可以包含多条语句,也可以只由一条语句组成。

图3.2 双分支if/else语句流程图

【例3-2】 从键盘输入年份t,如果年份t能被400整除,或者能被4整除但不能被100整除,则输出“t年是闰年”,否则输出“t年不是闰年”,t用输入的年份代替。

程序代码:

程序测试:运行程序,请首先输入年份1996,观察程序的运行结果。再次运行程序,请输入年份2000,观察程序的运行结果。再次运行程序,请输入年份2003,观察程序的运行结果。

程序第一次运行结果:

程序第二次运行结果:

程序第三次运行结果:

思考:只给一个年份值进行测试能否说明程序流程无误?在用复杂的条件表达式进行判断时,应该怎样设计测试数据,以验证你的程序流程是正确的?

【例3-3】 某金融企业为招聘职工,满足以下两个条件之一的求职者将会接到面试通知。

(1)25岁及以下且是重点大学“金融工程”专业的应届毕业生;

(2)具备至少3年工作经验的“投资银行”专业人士。

请编写程序判断一个24岁非重点大学投资银行专业毕业,已有3年工作经验的求职者能否得到面试通知。

分析:该企业面试条件涉及年龄、工作年限、毕业院校类别、所学专业4个方面。为此,设定以下变量:年龄age(整型,取值应该大于0),工作年限(年)jobtime(整型,取值应该大于等于0),毕业院校类别college(字符串类型,取值为“重点”和“非重点”),所学专业major(字符串类型,取值为“金融工程”“投资银行”和“其他”)。条件(1)和条件(2)各自内部的逻辑关系都是“并且”。条件(1)和条件(2)之间的逻辑关系是“或”。

条件(1)的表达式为:

条件(2)的表达式为:

程序代码:

程序运行结果:

思考:以上程序代码给定的年龄、工作年限(年)、毕业院校类别、所学专业4个方面满足哪个条件从而得到以上运行结果?