目录
前言
if选择结构是Java程序中最常用的选择结构,选择前的判断成为条件表达式,它是一个结果为布尔型的关系表达式或者逻辑表达式,并根据条件表达式的值是“true”或“false”来决定执行哪个语句块。
if选择结构
语法结构:
if(条件表达式){
代码块;
}
执行规律:在程序执行到if语句时,先计算条件表达式里的值;如果条件表达式的结果为“true”,则执行if语句里的代码块;如果条件表达式的结果为“false”,则该语句块不执行,程序将跳过这些语句块,继续执行后面的其它语句。称作“单分支选择结构”,流程图如下
流程图:
例如:
输入两个整数,如果第一个整数值大于第二个整数值,则输出第一个整数值最大。
package cn.work.demo03;
//引入Scanner类包
import java.util.Scanner;
public class Dome03 {
public static void main(String[] args) {
/*
* if选择结构
* 需求:输入两个整数,如果第一个整数值大于第二个整数值,则输出第一个整数值最大
*/
//使用Scanner类接受从控制台输入的整数
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个整数值:");
int num01 = in.nextInt();
System.out.println("请输入第二个整数值:");
int num02 = in.nextInt();
//条件表达式:num01 > num02;结果:true
if(num01 > num02){
System.out.println("第一个整数值最大:" + num01 + ">" + num02 );
}
}
}
注意:
- 条件表达式的结果只能是boolean值,结果要么是“true”,要么是“false”。
- 如果{}里的代码块只有一行代码,可以省略{}不写,但不建议省略{}。
if-else选择结构
语法结构:
if(条件表达式){
代码块1;
}else{
代码块2;
}
执行规律:在程序执行到if-else语句时,先计算条件表达式里的值;如果条件表达式的结果为“true”,则执行if语句里的“代码块1”;如果条件表达式的结果为“false”,则执行else语句里的“代码块2”;称作“双分支选择结构”,流程图如下:
流程图:
例如:
输入两个整数,比较两个整数的大小,输出最大的整数。
package cn.work.demo03;
//引入Scanner类包
import java.util.Scanner;
public class Dome03 {
public static void main(String[] args) {
/*
* if-else选择结构
* 需求:输入两个整数,计较两个整数的大小,输出最大的整数。
*/
//使用Scanner类接受从控制台输入的整数
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个整数值:");
int num01 = in.nextInt();
System.out.println("请输入第二个整数值:");
int num02 = in.nextInt();
//条件表达式:num01 > num02;结果:true
if(num01 > num02){
System.out.println("num01最大:" + num01);
}else{
System.out.println("num02最大:" + num02);
}
}
}
注意:不管条件表达式里的关系表达式或者逻辑表达式的内容时简单还是复杂,其结果只能是boolean值,“true”或“false”。
if-else if-else选择结构
语法结构:
if(条件表达式1){
代码块1;
}else if(条件表达式2){
代码块2;
}
……
else if(条件表达式n){
代码块n;
}else{
代码块n+1;
}
执行规律: 当程序执行到if语句时,先计算条件表达式里的值;如果“条件表达式1”的结果为“true”;则执行“代码块1”;如果“条件表达式1”的结果为“false,则计算条件表达式2的值;如果“条件表达式2”的结果为“true”;则执行“代码块2”;如果“条件表达式1”的结果为“false,则继续判断后续的条件表达式;如果条件表达式的结果都为“false”,则执行“else”语句里的代码块。称作“多分支选择结构”,流程图如下:
流程图:
例如:
输入两个整数,比较两个整数的大小,输出最大的整数。
package cn.work.demo03;
//引入Scanner类包
import java.util.Scanner;
public class Dome03 {
public static void main(String[] args) {
/*
* if-else if-else选择结构
* 需求:输入两个整数,计较两个整数的大小,输出最大的整数。
*/
//使用Scanner类接受从控制台输入的整数
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个整数值:");
int num01 = in.nextInt();
System.out.println("请输入第二个整数值:");
int num02 = in.nextInt();
//条件表达式:num01 > num02;结果:true
if(num01 > num02){
System.out.println("num01最大:" + num01);
}
//条件表达式:num01 < num02;结果:true
else if(num01 < num02){
System.out.println("num02最大:" + num02);
}else{
System.out.println("两个整数值相同:" + num01 + "=" + num02);
}
}
}
注意:
- 不管条件表达式里的关系表达式或者逻辑表达式的内容时简单还是复杂,其结果只能是boolean值,“true”或“false”。
- “else”语句可以省略不写,但如果“else”语句没有写,当所有条件表达式都为“false”时,程序会跳过整个“if-else if结构”,继续执行后面的其它语句。
- 在“if-else if”结构中,条件表达式的顺序有着严格的要求,不可颠倒顺序。
if嵌套选择结构
语法结构:
if(条件表达式1){
代码块1;
if(条件表达式2){
代码块3;
}else{
代码块4;
}
}else{
代码块2
if(条件表达式3){
代码块5;
}else{
代码块6;
}
}
执行规律:在程序执行到if-else语句时,先计算“条件表达式1”的值;如果“条件表达式1”的结果为“true”,则执行if语句里的“代码块1和嵌套的if-else语句”,执行到“if-else”语句时,再计算“条件表达式2”的值;如果“条件表达式2”的结果为“true”,则执行if语句里的“代码块2”;如果“条件表达式2”的结果为“false”,则执行else语句里的“代码块4”。
如果“条件表达式1”的结果为“false”,则执行else语句里的“代码块2和嵌套的if-else语句”,执行到“if-else”语句时,再计算“条件表达式3”的值;如果“条件表达式3”的结果为“true”,则执行if语句里的“代码块5”;如果“条件表达式3”的结果为“false”,则执行else语句里的“代码块6”。称作“嵌套选择结构”,流程图如下:
流程图:
注意:
- if选择结构可以嵌套使用,但不建议嵌套太多层选择结构。
- 不管if选择结构如何嵌套使用,只要满足条件表达式值为“true”就执行{}里的代码块,否则不执行。