一.if结构
1)语法: if(boolean){ 语句块--------------基于条件执行的语句 } 2)执行过程: 判断boolean的值: 若为true,则执行语句块(整个结束) 若为false,则直接结束
二.if else结构
1)语法: if(boolean){ 语句块1 }else{ 语句块2 } 2)执行过程: 判断boolean的值: 若为true,则执行语句块1(整个结束) 若为false,则执行语句块2(整个结束) 3)说明: 语句块1和语句块2,必走其中之一-------------2选1
三.if else if()结构
1)语法: if(boolean-1){ 语句块1 }else if(boolean-2){ 语句块2 }else if(boolean-3){ 语句块3 }else{ 语句块4 } 2)执行过程: 判断boolean-1,若为true则执行语句块1(结束),若为false则 再判断boolean-2,若为true则执行语句块2(结束),若为false则 再判断boolean-3,若为true则执行语句块3(结束),若为false则执行语句块4(结束) 3)说明: 语句块1/2/3/4,必走其中之一--------多选1
四.switch case结构
- switch...case结构:多条路 - 优点:效率高、结构清晰 - 缺点:只能对整数判断相等 - break:跳出switch > switch中数据的类型:byte,short,int,char,String,枚举
1.break关键字
(1)跳出switch语句: 在switch语句中,break用于在执行完某个case分支后立即终止switch语句的执行,防止自动落入到下一个case(如果存在的话)。如果不使用break,程序会继续执行下一个case,直到遇到break或者switch语句结束
(2)跳出循环: 当break出现在循环体内(如for、while、do-while循环),它会立即终止当前循环的执行,不再执行循环中剩余的代码以及循环体后的任何迭代。程序控制权将传递给紧随循环之后的第一条语句。
对于switch case的一些重点说明
一.switch case的执行流程
1.先对switch(表达式)括号里表达式进行计算,计算出一个值
2.根据计算出来的表达式的值与case语句对应的值进行匹配
3.如果与某个case对应的值匹配,则执行对应的语句,之后执行break退出switch case循环语句
4.如果没有case对应的值与之匹配,则执行default对应的语句,结束循环
*****需要注意的点
1.表达式的值可以是short,byte,int,char,枚举或String类型
2.case中的值不能重复,且必须是常量,不可以是变量
3.每个case标签对应的语句后都要加break结束该分支,否则的话还会继续执行下一分支
练习
-
声明两个整型变量a和b并分别赋值,找到a和b中的最大值,并输出。用两种方式实现:条件运算符、if..else分支结构
参考代码:
package test; public class Day03 { public static void main(String[] args) { /* int a=8,b=5; int max = a>b?a:b; System.out.println("max="+max); */ int a=8,b=5; int max; if(a>b){ max = a; }else{ max = b; } System.out.println("max="+max); } }
-
声明一个整型变量year并存储年份,判断其是平年还是闰年,若是闰年则输出"某某某年是闰年",否则输出"某某某年是平年"。
参考代码:
package test; public class Day03 { public static void main(String[] args) { /* 闰年的判断公式: 1)4年一闰,百年不闰,就是:能被4整除,并且,不能被100整除 或者 2)400年再闰,就是:能被400整除 */ int year = 2000; //年份 //带数(2021,2020,2000) if((year%4==0 && year%100!=0) || year%400==0){ System.out.println(year+"是闰年"); }else{ System.out.println(year+"是平年"); } } }
-
成绩等级判断:(注:考虑成绩的合法性:当不合法成绩时,输出"成绩不合法")
参考代码:
int score = 95;
//带数(888,-56,95,85,65,45)
if(score<0 || score>100){
System.out.println("成绩不合法");
}else if(score>=90){ //合法
System.out.println("A-优秀");
}else if(score>=80){
System.out.println("B-良好");
}else if(score>=60){
System.out.println("C-中等");
}else{
System.out.println("D-不及格");
}