选择结构
-
if单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
-
语法
if\textcolor{blue}{if}if(布尔表达式){
如果布尔表达式为true将执行的语句\textcolor{green}{如果布尔表达式为true将执行的语句}如果布尔表达式为true将执行的语句
}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vDWT0BE-1667634694788)(C:\Users\houyuanyuan\AppData\Roaming\Typora\typora-user-images\image-20221104120455723.png)]](https://i-blog.csdnimg.cn/blog_migrate/7dca786d9d03b60f5a0420b877d68e4e.png)
public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine(); //equals:判断字符串是否相等 if(s.equals("Hello")){ System.out.println(s); } System.out.println("End"); scanner.close(); } } -
-
if双选择结构
-
现在有个需求,公司要收购一个软件,成功了,给人支付1000万元,失败了,自己找人开发。这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。
-
语法:
if\textcolor{blue}{if}if(布尔表达式){
//如果布尔表达式的值为true\textcolor{green}{//如果布尔表达式的值为true}//如果布尔表达式的值为true
}else\textcolor{blue}{else}else{
//如果布尔表达式的值为false\textcolor{green}{//如果布尔表达式的值为false}//如果布尔表达式的值为false
}

public class IfDemo02 { public static void main(String[] args) { //考试分数大于60分就是及格,小于60分就是不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if(score>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
-
-
if多选择结构
-
我们发现刚才的代码不符合实际情况,真实的情况可能还存在ABCD,存在区间多级判断。比如90-100就是A,80-90就是B等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!
-
语法
if\textcolor{red}{if}if(布尔表达式 1){
如果布尔表达式1的值为true执行代码\textcolor{green}{如果布尔表达式1的值为true执行代码}如果布尔表达式1的值为true执行代码
}else if (布尔表达式 2){
如果布尔表达式2的值为true执行代码\textcolor{green}{如果布尔表达式2的值为true执行代码}如果布尔表达式2的值为true执行代码
}else if(布尔表达式 3){
如果布尔表达式3的值为true执行代码\textcolor{green}{如果布尔表达式3的值为true执行代码}如果布尔表达式3的值为true执行代码
}else{
如果以上布尔表达式都不为true执行代码\textcolor{green}{如果以上布尔表达式都不为true执行代码}如果以上布尔表达式都不为true执行代码
}

import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //考试分数大于60分就是及格,小于60分就是不及格 Scanner scanner = new Scanner(System.in); /* if语句至少有1个else语句,else语句在所有的else if语句之后 if语句可以有若干个else if语句,它们必须在else语句之前 一旦其中一个else if 语句检测为true,其他的else if以及else语句都将跳过执行 */ System.out.println("请输入成绩:"); int score = scanner.nextInt(); if(score==100){ System.out.println("恭喜满分"); }else if(score<100 && score>=90){ System.out.println("A级"); }else if(score<90 && score>=80){ System.out.println("B级"); }else if(score<80 && score>=70){ System.out.println("C级"); }else if(score<70 && score>=60){ System.out.println("D级"); }else if(score<60 && score>=0){ System.out.println("不及格"); } else{ System.out.println("成绩不合法"); } scanner.close(); } }注意:
if语句至少有1个else语句,else语句在所有的elseif语句之后\textcolor{red}{if语句至少有1个else语句,else语句在所有的else if语句之后}if语句至少有1个else语句,else语句在所有的elseif语句之后
if语句可以有若干个elseif语句,它们必须在else语句之前\textcolor{red}{if语句可以有若干个else if语句,它们必须在else语句之前}if语句可以有若干个elseif语句,它们必须在else语句之前
一旦其中一个elseif语句检测为true,其他的elseif以及else语句都将跳过执行\textcolor{red}{一旦其中一个else if 语句检测为true,其他的else if以及else语句都将跳过执行}一旦其中一个elseif语句检测为true,其他的elseif以及else语句都将跳过执行
-
-
嵌套的if语句
-
使用嵌套的if……else语句是合法的,也就是说你可以在另一个if或者else if语句中使用if或者else if语句。你可以像if语句一样嵌套else if……else
-
语法
if\textcolor{blue}{if}if(布尔表达式 1){
//如果布尔表达式1的值为true执行代码\textcolor{green}{//如果布尔表达式 1 的值为true执行代码}//如果布尔表达式1的值为true执行代码
if\textcolor{blue}{if}if(布尔表达式 2){
//如果布尔表达式2的值为true执行代码\textcolor{green}{//如果布尔表达式 2 的值为true执行代码}//如果布尔表达式2的值为true执行代码
}
}
-
思考题:查找1-100之间的数
public class IfDemo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入0--100之间的整数:"); int i = scanner.nextInt(); if (i>=0 && i<=50){ System.out.println("你输入的数:"+i+"在0-50之间"); if (i>=50 && i<=100){ System.out.println("你输入的数:"+i+"在50-100之间"); } }else{ System.out.println("你输入的数不合法,请重新输入!"); } scanner.close(); } }(老师布置的题是我自己做的不知道对不对,如果有哪里不正确麻烦指导我一下,谢谢!)
-
-
Switch多选择结构
-
多选择结构还有一个实现方式就是switch case语句
-
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
-
switch语句中的变量类型可以是:
- byte,short,int或者char
- 从JavaSE7开始\textcolor{red}{从Java SE7开始}从JavaSE7开始
- switch支持字符串String类型\textcolor{red}{switch支持字符串String类型}switch支持字符串String类型
- 同时case标签必须为字符串常量或字面量
-
语法:
switch\textcolor{blue}{switch}switch(expression){
case\textcolor{blue}{case}case value:
//语句\textcolor{green}{//语句}//语句
break\textcolor{blue}{break}break;//可选\textcolor{green}{//可选}//可选
case\textcolor{blue}{case}case value:
//语句\textcolor{green}{//语句}//语句
break\textcolor{blue}{break}break;//可选\textcolor{green}{//可选}//可选
//你可以有任意数量的case语句\textcolor{green}{//你可以有任意数量的case语句}//你可以有任意数量的case语句
default\textcolor{blue}{default}default://可选\textcolor{green}{//可选}//可选
//语句\textcolor{green}{//语句}//语句
}
-
public class SwitchDemo01 {
public static void main(String[] args) {
//case穿透:
//switch匹配具体的值
char grade = 'F';
switch (grade){
case 'A':
System.out.println("优秀");
break;
//break执行完本条语句,后面的都不执行
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中");
break;
case 'D':
System.out.println("差");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "川川";
//JDK7的新特性,表达式结果可以是字符串!!!
//字符的本质还是数字
//反编译 java---class(字节码文件)---反编译工具(IDEA)
switch (name){
case "川川":
System.out.println("川川");
break;
case "竹川萤":
System.out.println("竹川萤");
break;
default:
System.out.println("弄啥嘞!");
}
}
}
1448

被折叠的 条评论
为什么被折叠?



