1.什么是选择结构?
选择结构是当给定判断条件时,根据条件来判断是否满足某些条件,如果满足实行提前规定好的一段代码,反之执行另一代码的一种结构体。也就是说选择结构是根据判断的结果来控制程序的走向的一种结构体。
选择结构分为单分支选择结构、双分支结构、多分支结构。以及多重选择结构。
2.选择结构分类。
2.1 if语句——单条件单分支语句。
单分支是最简单的选择结构,即根据一个条件来控制程序执行的流程。
语法格式为:
if(判断条件) {
语句块
}
单分支流程图如下:
代码表示如下:
public class test_1 {
public static void main(String args[]) {
int A = 0;
if(A==0) {
System.out.println("A的值为0。");
}
}
}
运行截图:
2.2 if-else单条件双分支语句。
语法格式如下:
if(判断条件) {
语句块1
}
else {
语句块2
}
双分支流程图:
代码表示:
public class test_1 {
public static void main(String args[]) {
int A = 2;
if(A==0) {
System.out.println("A的值为0。");
}
else {
System.out.println("A的值不为0。");
}
}
}
运行截图:
2.3 if-else if-else多条件分支语句。
在if-else if-else语句中,if以及多个else-if后面的一对()内的表达式的值必须为boolean类型。程序执行该语句时按照语句中表达式的顺序,首先计算表达式1的值,如果结果为true则执行紧跟着的复合语句,结束当前该语句的执行。如果结果为false则继续执行表达式2的值,以此类推,假设第M个表达式的值为true则执行跟着的复合语句,结束当前语句的执行,否则执行第M+1个表达式的值,如果所有的表达式的值都为false则执行关键字else后面的复合语句,结束当前语句的执行。
语法格式:
if(条件表达式1) {
语句块1;
}
Else if表达式2){
语句块2;
}
Else if表达式3){
语句块3;
}
.
.
.
else(条件表达式n){
语句块n;
}
流程图:
代码表示:
public class test_1 {
public static void main(String args[]) {
int A = 2;
if(A==0) {
System.out.println("A的值为0。");
}
else if(A==1) {
System.out.println("A的值为1。");
}
else {
System.out.println("A的值为2。");
}
}
}
运行截图:
2.4嵌套的if语句
很多问题是一次简单的选择判断结构所解决不了的,需要进行多次选择判断,嵌套的if语句便是其中的一种解决方法。嵌套的if语句是一种多重选择结构。多重选择结构,顾名思义,就是有多种选择可以经过多次判断的结构。
语法形式:
if(表达式1) {
if(表达式2) {
语句 1;
}
else{
语句 2;
}
}
else {
if(表达式3) {
语句 3;
}
else {
语句 4;
}
}
流程图:
代码表示:
import java.util.*;
public class test_1 { // 这是一个类
public static void main(String args[]) {
Scanner a = new Scanner(System.in);
System.out.println("请输入A的值:6");
int A = a.nextInt();
if(A<5) {
if(A<3) {
System.out.println("A的值小于3。");
}
else{
System.out.println("A的值大于3。");
}
}
else {
if(A<8) {
System.out.println("A的值大于5小于8.");
}
else {
System.out.println("A的值大于8。");
}
}
}
}
运行截图:
2.5 switch单条件多分支语句(开关语句)
Switch语句同2.4嵌套的if语句都为多重选择结构。Switch语句首先计算表达式的值,如果表达式的值等同于case后的常量,就执行该case语句后的所有语句,直到碰到break为止。若表达式的值与所有case的值都不相同,则执行default后面的若干语句。
语法形式:
switch(表达式) {
case 常量值1:
语句块 1;
break;
case 常量值2:
语句块 2;
break;
case 常量值3:
语句块 3;
break;
。
。
。
case 常量值n:
语句块 n;
break;
default:
语句块;
}
流程图:
代码表示:
import java.util.*;
public class test_1 { // 这是一个类
public static void main(String args[]) {
Scanner a = new Scanner(System.in);
System.out.println("请输入A的值:");
int A = a.nextInt();
switch(A) {
case 1 :
System.out.println("值为1");
break;
case 2:
System.out.println("值为2");
break;
case 3:
System.out.println("值为3");
break;
default:
System.out.println("不为123.");
}
}
}
运行截图: