** 注意:以下不管是if括号里的表达式还是switch括号里的表达式,结果都是boolean类型(结果只有true或false),如果条件有多个可以使用逻辑运算符&&-并且, || - 或者, !-非,取反**
if选择结构
一般用于单个判断,表示如果的意思
1.语法
if(表达式){ // 表达式为布尔类型,结果为 true 或false
语句
}
2.流程图
3.执行步骤
①对表达式的结果进行判断
②如果表达式的结果为真,则执行该语句
③如果表达式的结果为假,则跳过该语句
4.代码示例
public static void main(String [] args){
int score=70;
if(score>=60){ //成绩大于等于60分通过考试
System.out.println("成绩及格");
System.out.println("通过考试");
}
}
运行结果
if-else选择结构
一般用于二选一的情况
1.语法
if(表达式){ // 表达式为布尔类型,结果为 true 或false
语句1
}else{
语句2
}
2.流程图
3.执行步骤
①对表达式的结果进行判断
②如果表达式的结果为真,则执行语句1
③如果表达式的结果为假,则执行语句2
4.代码示例
public static void main(String [] args){
int score=50;
if(score>=60){ //成绩大于等于60分成绩及格
System.out.println("成绩及格");
}else{
System.out.println("成绩不及格");
}
}
运行结果
**注意:**if-else中必然有一个会被执行
多重if-else选择结构
主要用于多重判断的情况
1.语法
if(表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
2.流程图
3.执行步骤
①对表达式1的结果进行判断
②如果表达式1的结果为真,则执行语句1;否则判断表达式2的值
③如果表达式2的结果为真,则执行语句2;否则执行语句3
4.代码示例
public class demo1 {
public static void main(String [] args){
int score=85;
if(score>=90 && score<=100){ //判断score值是否大于等于90且小于等于100
System.out.println("A级");
}else if(score>=80){ //判断score值是否大于等于80且小于90
System.out.println("B级");
}else if(score>=80){ //判断score值是否大于等于70且小于80
System.out.println("C级");
}else if(score>=80){ //判断score值是否大于等于60且小于70
System.out.println("D级");
}else { //判断score值小于60
System.out.println("E级");
}
}
}
运行结果
小结:
一次判断用if语句
两次判断(一个真一个假)用if - else 语句
两次以上判断使用 if - else if - else
嵌套if选择结构
1.语法
if(表达式1) {
if( 表达式2) {
语句1
}else {
语句2
}
}else {
if(表达式3) {
语句3
}else {
语句4
}
}
2.流程图
3.执行步骤
①对表达式1的结果进行判断
②如果表达式1的结果为真,再对表达式2的结果进行判断。如果表达式2的结果为真,则执行语句1;否则执行语句2
③如果表达式1的结果为假,对表达式3的结果进行判断。如果表达式3的结果为真,则执行语句3;否则,执行语句4
4.代码示例
public class demo1 {
public static void main(String [] args){
int day=6; //今天周六
int temp=31; //温度为31℃
String weather="天气好"; //天气好
if(day == 6||day ==7) {
if(temp>30) {
//去游泳
System.out.println("游泳");
}
else {
//去爬山
System.out.println("爬山");
}
}
else {
if("天气好".equals(weather) ) {
//去客户单位谈业务
System.out.println("去客户单位谈业务");
}
else {
//在公司上网查资料
System.out.println("在公司上网查资料");
}
}
}
}
运行结果
switch选择语句
注意:switch表达式可以接受的类型有:int、short、byte、char、枚举类型、String
1.语法
switch(表达式) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
......
default:
语句;
break;
}
2.流程图
3.执行步骤
①计算switch后表达式的值
②将计算结果从上到下依次与case后的常量值比较
③如果相等就执行该常量后的代码块,遇到break语句就结束
④如果与任何一个case后的常量值都不匹配,就执行default中的语句
4.代码示例
public class demo1 {
public static void main(String [] args){
int score = 75;
switch(score/10) {
case 10:
case 9:
System.out.println("A级"); //成绩大于等于90分且小于等于100
break;
case 8:
System.out.println("B级"); //成绩大于等于80分
break;
case 7:
System.out.println("C级"); //成绩大于等于70分
break;
case 6:
System.out.println("D级"); //成绩大于等于60分
break;
default:
System.out.println("E级"); //成绩小于60分
}
}
}
运行结果
switch语句的特点:
1、switch用于多重分支且条件判断是等值判断的情况
2、switch结束有两种情况:遇到 break; 执行到switch语句结束
3、case和default是没有前后顺序的,但是执行时先执行case语句,如果没有符合的会执行default语句;如果default放在了前面,则一定要加上break, Default语句一般是放在最后
****重要:switch语句和if语句比较
1:相同点:
都可以用来处理多分支结构
2:区别:
if多用于区间判断, i >= 2 && i <= 5
switch用于等值条件的判断
3:用switch能做的,用if都能做,但反过来则不行