逻辑控制语句
选择(分支)结构
作用:通过条件进行判断是否执行代码块
if条件分支
分类:
单分支:
当条件不成立则跳代码块
语法:
if(条件){
语句块;
}
int chinese = 98, math = 92;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}
双分支:
当条件成立执行代码块1,不成立则执行代码块2
语法:
if(条件){
语句块1;
}else{
语句块2;
}
int chinese = 98, math = 92;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}else{
System.out.printf("因为平均成绩为%.2f考过95", avgScore);
}
多分支:(常用于连续区间的判断)
当条件1不满足则判断条件2,条件2不满足则判断条件3...直到条件成立
若都不成立,如果有else则执行else里代码,没有则全部跳过
语法:
if(条件1){
语句块1;
}else if(条件2){
语句块2;
}else if(){
......
}else{
语句块
}
int chinese = 58, math = 98;
String level;
float avgScore = (chinese+math)/2.0f;
if(avgScore>=95){
level = "A";
}else if(avgScore>=90){
level = "B";
}else if(avgScore>=80){
level = "C";
}else if(avgScore>=70){
level = "D";
}else if(avgScore>=60) {
level = "E";
}else{
level = "F";
}
System.out.println(level);
常量列举
作用:与if多分支类似,但适用于等值常量,不适用于连续区间
类型限制:不支持long,float,double类型
作用域:只有一个大括号,作用域为整个大括号,比if作用域大
语法:
switch(算术表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
case 常量3:
代码块3;
break;
......
default:
break;
}
Scanner input = new Scanner(System.in);
System.out.print("请输入:");
String dial = input.next();
switch (dial){
case "1":
System.out.println("当前余额为999999999");
break;
case "2":
System.out.println("历史账单...");
break;
case "3":
System.out.println("投资理财");
break;
default:
System.out.println("请重拨");
break;
}
input.close();
解释:
当算数表达式的结果依次匹配常量1、常量2...直到default
若匹配成功则进入case的代码块,进入后碰到break则跳出switch,没有则继续匹配,所以switch有贯穿功能。当碰到default,则进入。
贯穿功能演示
Scanner input = new Scanner(System.in);
System.out.println("请输入:");
int num = input.nextInt();
switch(num){
case 1:
case 2:
case 4:
System.out.println("红烧");
break;
case 3:
case 5:
case 6:
System.out.println("清蒸");
break;
case 7:
System.out.println("节食");
break;
default:
System.out.println("输入错误");
break;
}
input.close();
嵌套分支:
if(条件1){
if(条件2){
语句块
}
}
结构
作用:重复执行某行代码
for循环结构:
语法:
for(初始化,条件,变化){
循环体;
}
执行顺序:初始化->条件成立->循环体->变化->初始化->条件不成立->跳出for循环体
两种循环中控制的方法:
break跳出,注:不会执行变化,直接退出
假设求证法:声明布尔变量为true或false,后如果不满足,则修改布尔变量
条件可省,默认死循环
增强型for循环:
场景:当出现可迭代对象时,若不需对其中的元素进行修改时使用
语法:
for(type 变量名:可迭代对象){
循环体;
}
while循环:
场景:一般在不知道循环次数时运用
语法:
while(条件){
循环体;
与while循环不同处:至少执行循环一次
语法:
do{
循环体;
} while(条件);
多重循环执行顺序:
for(1; 2; 9){
3;
for(4; 5; 7){
6;
}
8;
}
10;

浙公网安备 33010602011771号