Java 控制语句
选择结构
if 语句
if 语句被称为分支语句/条件控制语句,有两种表现方式
基于两种表现方式方法是允许进行嵌套
- if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
- if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
- 嵌套时,注意缩进写法规范
| |
| public class IfTest { |
| |
| public static void main(String[] args){ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| if(true){ |
| System.out.println("if 内执行"); |
| } |
| |
| if(false){ |
| System.out.println("if 内执行"); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| if(true){ |
| System.out.println("if 内执行"); |
| }else{ |
| System.out.println("else 内执行"); |
| } |
| |
| if(false){ |
| System.out.println("if 内执行"); |
| }else{ |
| System.out.println("else 内执行"); |
| } |
| |
| |
| |
| |
| |
| |
| } |
| } |
| |
switch 语句
switch 形式开关选择,if 偏向范围概念
一个比较完整的 switch 语句:
| switch(expression) { |
| case value : |
| java 语句; |
| ... |
| [break;]可选 |
| |
| case value : |
| java 语句; |
| ... |
| [break;]可选 |
| |
| ... |
| |
| default: |
| java 语句; |
| ... |
| } |
- expression 是 int 数据和 String 数据,也可以是:byte、short、char。从 Java SE 7 开始,switch 支持字符串 String 类型
- case 标签中 value 必须为字符串常量或字面量
- switch 语句可以有多个 case 语句。每个 case 后面跟一个比对值和半角冒号
- expression 于 value 的数据类型需要保持一致
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,case 内有 break 语句,整个 switch 语句将结束
- 如果没有 break 语句,会继续执行后续分支内容,被称作 "case 穿透现象"
- 如果所以 case 分支的数值都不匹配,则执行 default 分支的内容,类似 if 语句中的 else
- default 分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个),由于 default 在没有 case 语句的值设定,所以 default 分支不需要 break 语句
| public class SwitchTest{ |
| |
| public static void main(String[] args){ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| long x = 100L; |
| switch((int)x){} |
| |
| |
| |
| |
| |
| byte a = 10; |
| switch(a){} |
| |
| short b = 10; |
| switch(b){} |
| |
| char c = 'A'; |
| switch(c){} |
| |
| |
| |
| |
| String name = "XXX"; |
| switch(name){} |
| |
| |
| |
| } |
| } |
循环结构
for循环
语法结构:
| for(初始表达式; 布尔表达式; 更新表达式){ |
| 循环体 |
| } |
- 循环体:需要重复执行的 java 语句
- 初始表达式:最先执行,且只执行一次
- 布尔表达式:表达式值必为 true/false
- for 执行流程:
- 先执行初始表达式,只执行本次
- 判断布尔表达式
- true :
- 执行循环体
- 执行更新表达式
- 判断布尔表达式
- false: 循环结束
- Java5 引入了一种主要用于数组的增强型 for 循环
示例
| public class ForTest{ |
| |
| public static void main(String[] args){ |
| |
| System.out.println("你好!"); |
| System.out.println("你好!"); |
| System.out.println("你好!"); |
| System.out.println("你好!"); |
| System.out.println("你好!"); |
| |
| System.out.println("----------以下为 for 输出-------------"); |
| |
| for(int x = 1; x <= 5; i++){ |
| System.out.println("你好!"); |
| } |
| |
| |
| |
| for(int i = 0; i < 10; i++){ |
| System.out.println("i --> " + i); |
| } |
| |
| for(int i = 0; i <= 10; i++){ |
| System.out.println("i --> " + i); |
| } |
| |
| |
| int [] numbers = {10, 20, 30, 40, 50}; |
| |
| for(int x : numbers ){ |
| System.out.print( x ); |
| System.out.print(","); |
| } |
| } |
| } |
while循环
语法结构:
| - 判断布尔表达式 |
| - true 执行循环体 |
| - 判断布尔表达式 |
| - true 执行循环体 |
| ... |
| - false 结束循环 |
| - false 结束循环 |
实例代码:
| public class WhileTest{ |
| |
| public static void main(String[] args){ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| int i = 1; |
| while(i <= 10){ |
| System.out.println(i); |
| i++; |
| } |
| System.out.println("---------------------分隔"); |
| i = 1; |
| while(i <= 10){ |
| i++; |
| System.out.println(i); |
| } |
| |
| System.out.println("---------------------分隔"); |
| |
| |
| int n = 1; |
| int m = 1; |
| |
| while(n <= 10){ |
| System.out.print("n++ --> " + n++); |
| System.out.println(" end ++m --> " + ++m); |
| } |
| } |
| } |
do...while循环
语法结构:
| - 执行do内循环体 |
| - 判断布尔表达式 |
| - true |
| - 执行do内循环体 |
| - 判断布尔表达式 |
| ... |
| - false 循环结束 |
- do...while循环次数:1 ~ N【至少一次】
- do...while最后有一个
;
示例代码
| public class DoWhileTest{ |
| |
| public static void main(String[] args){ |
| |
| int i = 10; |
| |
| do{ |
| System.out.println(i); |
| i++; |
| }while(i > 20); |
| |
| System.out.println("-------------------"); |
| |
| i = 10; |
| while(i > 20){ |
| System.out.println(i); |
| i++; |
| } |
| |
| |
| } |
| } |
循环控制
break 语句
- break 是Java语句当中的关键字,被翻译成“中断/折断”
- break 使用在其后添加
;
,即可单独成为一个完整的Java语句
- break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块
- 在循环中当满足某些条件,就不需要执行后续内容,可以使用 break 跳出循环提高程序效率
- break 跳出最里层的循环,并且继续执行该循环下面的语句(默认只是当前层的循环)
- 跳出指定循环
示例
| public class BreakTest{ |
| |
| public static void main(String[] args){ |
| |
| for(int i = 0; i < 10; i++){ |
| if (i == 5){ |
| break; |
| } |
| System.out.println("i -> " + i); |
| } |
| System.out.println("-----------------跳出当前的循环-----------------------"); |
| |
| for(int i = 0; i < 10; i++){ |
| |
| for(int j = 0; j < 10; j++){ |
| |
| if (j == 5){ |
| System.out.println("跳出"); |
| break; |
| } |
| |
| System.out.print("i -> " + i); |
| System.out.println(" end j -> " + j); |
| } |
| } |
| System.out.println("---------------跳出指定循环-------------------------"); |
| |
| |
| for1: for(int i = 0; i < 10; i++){ |
| |
| for2: for(int j = 0; j < 10; j++){ |
| |
| if (j == 5){ |
| System.out.println("跳出"); |
| break for1; |
| } |
| |
| System.out.print("i -> " + i); |
| System.out.println(" end j -> " + j); |
| } |
| |
| } |
| } |
| } |
continue 语句
- continue 表示:继续/go on/下一个
- 用法(类似break):
- continue 适用于任何循环控制结构中,作用是让程序立刻跳转到下一次循环的迭代
- 在 for 循环中,continue 语句使程序立即跳转到更新语句
- 在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句
| public class ContinueTest{ |
| |
| public static void main(String[] args){ |
| |
| |
| System.out.println("------continue------"); |
| for(int i = 0; i < 5; i++){ |
| if(i == 1){ |
| continue; |
| } |
| System.out.println("i --> " + i); |
| } |
| |
| System.out.println("------break------"); |
| for(int i = 0; i < 5; i++){ |
| if(i == 1){ |
| break; |
| } |
| System.out.println("i --> " + i); |
| } |
| System.out.println("-----------------------"); |
| |
| |
| |
| System.out.println("------默认------"); |
| for1: for(int i = 0; i < 5; i++){ |
| for2: for(int j = 0; j < 5; j++){ |
| if(j == 1){ |
| System.out.println("跳出"); |
| continue; |
| } |
| System.out.print("i --> " + i); |
| System.out.println(" end j --> " + j); |
| } |
| } |
| System.out.println("------指定循环------"); |
| for1: for(int i = 0; i < 5; i++){ |
| for2: for(int j = 0; j < 5; j++){ |
| if(j == 1){ |
| System.out.println("跳出"); |
| continue for1; |
| } |
| System.out.print("i --> " + i); |
| System.out.println(" end j --> " + j); |
| } |
| } |
| } |
| } |
基础章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了