三 . 选择结构与分支结构
一 . 选择结构
一.选择结构
概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。
1.if语法:
if(布尔表达式){
//代码块
}
1.1.执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块,再执行后续代码。
结果为false,则跳过代码块,直接执行后续代码。
2.if—else语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}
2.1执行流程:
对布尔表达式进行判断
结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
二.多重if选择结构(区间判断)
1.1语法:
if(布尔表达式){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
1.2执行流程:
表达式1为true,则执行代码1,再退出整个结构。
表达式2为true,则执行代码2,再退出整个结构。
表达式3为true,则执行代码3,再退出整个结构。
以上均为false,则执行代码4,再退出整个结构。
注意:相互排斥,有一个为true时,其他的均不再执行。
三.嵌套if选择结构
3.1语法:
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}
3.2执行流程:
当外层条件满足时,再判断内层条件。
注意:一个选择结构中,可嵌套另一个选择结构,可任意组合。
package Winter.structure.selection;
import java.util.Scanner;
public class Selection01 {
public static void main(String[] args) {
double score = 98.5;
if (score==100){
System.out.println("if的代码块");
}
System.out.println("程序结束!");
if (score==100){
System.out.println("恭喜,满分");
}else{
System.out.println("抱歉,没答对");
}
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的钱数:");
int money1 = sc.nextInt();
if (money1>100){
System.out.println("BMW");
}else if (money1>50 && money1<100){
System.out.println("A4");
}else{
System.out.println("bike");
}
int timer = 0;
char sex = '男';
if(timer<=15){
if (sex=='男'){
System.out.println("男子组决赛");
}
else{
System.out.println("女子组决赛");
}
}else{
System.out.println("Game over!");
}
}
}
二 . 分支结构
二.分支结构(等值判断)
1.1语法:
switch(变量|表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}
可判断的类型:byte,short,int,char,String
1.2执行流程:
如果变量中的值等于值1,则执行逻辑代码1。
如果变量中的值等于值2,则执行逻辑代码2。
如果变量中的值等于值n,则执行逻辑代码n。
如果变量中的值没有匹配的case值时,则执行default中的逻辑代码。
1.3注意:
当匹配的case执行后,不会自动退出整个结构,而是继续向下执行。
break关键字可在匹配case执行后,跳出整个结构。
内部是无序结构。
package Winter.structure.branching;
public class Branching01 {
public static void main(String[] args){
int weekDay = 5;
switch(weekDay){
case 1:
System.out.println("西红柿炒鸡蛋");
break;
case 2:
System.out.println("酸辣土豆丝");
break;
case 3:
System.out.println("酸豆角炒肉末");
break;
case 4:
System.out.println("干锅肥牛");
break;
case 5:
System.out.println("拉条子");
break;
case 6:
System.out.println("冒菜");
break;
default:
System.out.println("红薯");
}
}
}