在生活中,常常会遇到许多需要判断的情况,在这种情况下,需要根据一些条件作出决定和选择。例如,在我们打算出门时,需要判断天气怎么样,如果下雨了,就要带上雨伞;外出旅行时,需要根据不同情况,选择不同的交通工具。
前面我们看到的程序都是“顺序流程”,每条语句顺序执行。但是在很多情况下,程序并不是按既定的顺序执行,而是根据不同情况进行判断,然后执行不同的操作,这种流程成为“条件分支流程”,其结构也称为“条件结构”。
在Java语言中,提供了if语句结构来实现条件结构。本节内容只介绍最简单的条件语句:if语句。
if语句的语法规则如下:
if()
其中,条件是一个表达式,此表达式的值可以为真或假。条件必须括在一对圆括号之内。是一个或多个Java语言有效语句的集合,如果条件的值为真,则将执行此语句块。如果条件的值为假,则不执行该语句块,直接执行该语句块后面的语句(如果有)。
如果语句块中有多个语句,则需要将它们用一对大括号“{}”括起来,表面在条件的值为真时,需要处理整个语句块。
除简单的if语句外,Java语言还提供了if-else结构,其语法如下:
if()
else
在if-else结构中,如果条件的值为真,则将执行if 后面的语句块;如果条件的值为假,则将执行else后面的语句块。
现在,我们已经了解了Java语言的if结构和if-else结构的语法,下面探讨一下如何在条件结构中使用关系条件表达式。
例如:要测试两个整数类型的变量值num1和num2是否相等,可以编写num1 == num2,然后将其放入一个if语句中,如下所示:
if ( num1==num2 )
如果num1和num2的数值相等,则条件为真,执行if后面的语句块,否则条件为假,不执行if后面的语句块。
示例1:
要求用户输入两个数,如果这两个数的和大于100,则显示“两数和大于100”。
在D盘Java目录下,新建“ConditionSample1.java”文件。用记事本打开“ConditionSample1.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示if语句的使用。
程序声明整型变量num1和num2用于存储用户输入的两个数,sum用于存储这两个数相加后的结果。然后用Scanner类的nextInt方法获取用户的输入的两个数值,两个数值相加后存储在sum中,然后通过if语句判断sum>100是否成立,如果条件成立,程序输出“两数和大于100”。如果为假,程序结束,什么也不显示。
编译“ConditionSample1.java”文件,在命令行窗口输入“javac ConditionSample1.java”并执行命令,编译通过后,在命令行窗口输入“java ConditionSample1”运行Java程序,命令行窗口显示如下信息:
图 7-1 求两数和示例执行结果
示例2:
要求用户输入一个整数,判断该数是奇数还是偶数。
提示:能被2整除的整数为偶数,即该数除以2后余数为0,因此可以采用取余运算判断数的奇偶性。
在D盘Java目录下,新建“ConditionSample2.java”文件。用记事本打开“ConditionSample2.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示if-else结构的使用。
程序使用了if-else结构,如果if中的条件(num % 2)==0为真,则输出该数是一个偶数,如果为假,则输出该数是一个奇数。
编译“ConditionSample2.java”文件,在命令行窗口输入“javac ConditionSample2.java”并执行命令,编译通过后,在命令行窗口输入“java ConditionSample1”运行Java程序,命令行窗口显示如下信息:
图 7-2 求奇偶性示例执行结果
条件结构,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。
编写一个程序,要求用户输入三个数值,求三个数值的最大值,并将最大值输出到屏幕上。