02-顺序结构与选择结构
顺序结构
-
-
顺序结构是最简单的算法解构
-
语句和语句之间,框于框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,他是任何一个算法都离不开的基本算法结构
1 package xiaoka.struct; 2 3 public class ShunXuDemo { 4 public static void main(String[] args) { 5 System.out.println("hello1"); 6 System.out.println("hello2"); 7 System.out.println("hello3"); 8 System.out.println("hello4"); 9 System.out.println("hello5"); 10 } 11 }
选择结构
-
if 单选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if 语句来表示
-
语法:
1 if (布尔表达式){ 2 // 如果布尔表达式为true 将执行的语句 3 }
1 package xiaoka.struct; 2 3 import java.util.Scanner; 4 5 public class IfDemo01 { 6 public static void main(String[] args) { 7 Scanner scanner = new Scanner(System.in); 8 9 System.out.println("请输入内容:"); 10 String s = scanner.nextLine(); 11 12 // equals:判断字符是否相等 13 if (s.equals("hello")) { 14 System.out.println(s); 15 } 16 17 System.out.println("End"); 18 scanner.close(); 19 } 20 }
-
-
if 双选择结构
-
假如现在有这样一个需求,公司要收购一个软件,成功了会支付100万元,失败了,自己找人开发。这样子的需求用一个if 就搞不定了,需要有两个判断,需要一个双选择结构,所以就有了if-else结构
-
语法:
1 if (布尔表达式) { 2 //如果布尔表达式的值为true 3 }else{ 4 //如果布尔表达式的值为false 5 }
1 package xiaoka.struct; 2 3 import java.util.Scanner; 4 public class IfDemo02 { 5 public static void main(String[] args) { 6 //考试分数大于60分就是及格,小于60分就是不及格 7 Scanner scanner = new Scanner(System.in); 8 9 System.out.println("请输入成绩:"); 10 int score = scanner.nextInt(); 11 12 if (score>=60){ 13 System.out.println("及格"); 14 }else { 15 System.out.println("不及格"); 16 } 17 18 scanner.close(); 19 } 20 }
-
-
if 多选择结构
-
真实的情况还可能存在ABCD, 存在区间多级判断. 比如90-100为A, 80-90为B...等等, 在生活中我们很多时候的选择也不仅仅只有两个, 所以我们需要一个多选择结构来处理这些问题
-
语法:
1 if (布尔表达式 1){ 2 //如果布尔表达式1的值为true时执行的代码 3 }else if(布尔表达式 2){ 4 //如果布尔表达式2的值为true时执行的代码 5 }else if(布尔表达式 3){ 6 //如果布尔表达式3的值为true时执行的代码 7 }else{ 8 //如果以上布尔表达式的值都不为true时执行代码 9 }
1 package xiaoka.struct; 2 3 import java.util.Scanner; 4 public class IfDemo03 { 5 public static void main(String[] args) { 6 //考试分数大于60分就是及格,小于60分就是不及格 7 Scanner scanner = new Scanner(System.in); 8 9 /* 10 if 语句至多有一个else 语句,else 语句在所有的else if语句之后 11 if 语句可以有若干个else if 语句,它们必须在else 语句之前. 12 一旦其中一个else if语句检测为true, 其他的else if 语句以及else 语句都将跳过此执行. 13 */ 14 System.out.println("请输入成绩:"); 15 int score = scanner.nextInt(); 16 17 if (score==100){ 18 System.out.println("恭喜满分"); 19 }else if (score<100 && score>=90){ 20 System.out.println("A级"); 21 }else if (score<90 && score>=80){ 22 System.out.println("B级"); 23 }else if (score<80 && score>=70){ 24 System.out.println("C级"); 25 }else if (score<70 && score>=60){ 26 System.out.println("D级"); 27 }else if (score<60 && score>=0){ 28 System.out.println("不及格"); 29 }else { 30 System.out.println("成绩不合法"); 31 } 32 33 scanner.close(); 34 } 35 }
-
-
嵌套的if 结构
-
使用嵌套的if...else 语句是合法的. 也就是说可以在一个if 或者else 语句里使用另一个if 或else 语句.可以像if 语句一样嵌套 else if...else.
-
语法:
1 if (布尔表达式1 ){ 2 //如果布尔表达式1 的值为true执行代码 3 if(布尔表达式2 ){ 4 //如果布尔表达式2 的值为true执行代码 5 } 6 }
-
-
switch 多选择结构
-
多选择结构还有一个实现方式就是switch case语句.
-
switch case 语句判断一个变量与一系列值中某个值是否相等, 每个值称为一个分支.
-
switch 语句中的变量类型可以是:
-
byte, short, int 或者 char.
-
从Java SE 7开始
-
switch 支持字符串String 类型了
-
同时case 标签必须为字符串常量或字面量
-
语法:
1 switch(expression) { 2 case value: 3 //语句 4 break;//可选 5 case value: 6 //语句 7 break;//可选 8 //你可以有任意数量的case语句 9 default ://可选 10 //语句 11 }
1 package xiaoka.struct; 2 3 public class SwitchDemo01 { 4 public static void main(String[] args) { 5 //输出语句后面不加break的话,会出现case穿透现象 6 //switch 匹配一个具体的量 7 char grade = 'A'; 8 switch (grade){ 9 case 'A': 10 System.out.println("优秀"); 11 break;//可选 12 case 'B': 13 System.out.println("良好"); 14 break;//可选 15 case 'C': 16 System.out.println("及格"); 17 break;//可选 18 case 'D': 19 System.out.println("再接再厉"); 20 break;//可选 21 case 'E': 22 System.out.println("挂科"); 23 break;//可选 24 default: 25 System.out.println("未知等级"); 26 } 27 28 } 29 }
1 package xiaoka.struct; 2 3 public class SwitchDemo02 { 4 public static void main(String[] args) { 5 String name = "itach"; 6 //JDK7 的新特性,表达式结果可以是字符串 7 //字符串的本质还是数字 8 9 // 反编译 java---class (字符串文件)---反编译 (IDEA) 10 11 switch (name){ 12 case "小卡": 13 System.out.println("小卡最帅"); 14 break; 15 case "naruto": 16 System.out.println("梦想是成为火影"); 17 break; 18 case "itach": 19 System.out.println("お前の敗北、それが俺の現実だ"); 20 break; 21 default: 22 System.out.println("搞🔨哦"); 23 } 24 } 25 }
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!