在生活中,常常会遇到许多需要判断的情况,在这种情况下,需要根据一些条件作出决定和选择。例如,在我们打算出门时,需要判断天气怎么样,如果下雨了,就要带上雨伞;外出旅行时,需要根据不同情况,选择不同的交通工具。
前面我们看到的程序都是“顺序流程”,每条语句顺序执行。但是在很多情况下,程序并不是按既定的顺序执行,而是根据不同请况进行判断,然后执行不同的操作,这种流程成为“条件分支流程”,其结构也称为“条件结构”。
在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”。
在eclipse下新建项目PbaseUnit10,创建包unit,在unit包下创建Java类ConditionSample1。代码如下:
/**
* @Title: ConditionSample1.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
import java.util.Scanner;
/**
* @ClassName: ConditionSample1
* @Description: 流程控制(简单条件结构)案例1
* @author 编程训练营
* @date
*
*/
public class ConditionSample1 {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
int num1, num2, sum;
// 声明Scanner类,接收用户的输入
Scanner sc = new Scanner(System.in);
// 提示用户输入两个整数
System.out.println("请输入两个整数数:");
// Scanner类方法nextInt获取int类型的输入
num1 = sc.nextInt();
num2 = sc.nextInt();
// 求两数和
sum = num1 + num2;
// if语句,条件是num>100
if (sum > 100)
System.out.println("两数和大于100");
}
}程序结构分析
程序功能主要是演示if语句的使用。
程序声明整型变量num1和num2用于存储用户输入的两个数,sum用于存储这两个数相加后的结果。然后用Scanner类的nextInt方法获取用户的输入的两个数值,两个数值相加后存储在sum中,然后通过if语句判断sum>100是否成立,如果条件成立,程序输出“两数和大于100”。如果为假,程序结束,什么也不显示。
程序执行结果如下图所示:

案例2:要求用户输入一个整数,判断该数是奇数还是偶数。
在PbaseUnit10项目unit包下创建ConditionSample2类。代码如下:
/**
* @Title: ConditionSample2.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
import java.util.Scanner;
/**
* @ClassName: ConditionSample2
* @Description: 流程控制(简单条件结构)案例2
* @author 编程训练营
* @date
*
*/
public class ConditionSample2 {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型 @throws
*/
public static void main(String[] args) {
int num;
// 声明Scanner类,接收用户的输入
Scanner sc = new Scanner(System.in);
// 提示用户输入两个整数
System.out.println("请输入一个整数:");
// Scanner类方法nextInt获取int类型的输入
num = sc.nextInt();
// 用取余操作判断输入数值的奇偶性
if ((num % 2) == 0)
System.out.printf("%d是一个偶数", num);
else
System.out.printf("%d是一个奇数", num);
}
}程序结构分析
程序功能主要是演示if-else结构的使用。
程序使用了if-else结构,如果if中的条件(num % 2)==0为真,则输出该数是一个偶数,如果为假,则输出该数是一个奇数。
程序执行结果如下图所示:

条件结构,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。