Java程序运行结构

手写笔记转换

顺序结构

代码逐行执行,执行逻辑为线性逻辑

选择结构

代码遇到选择结构根据关系表达式的不同计算结果执行不同的操作

if语句

语法结构

1
2
3
if(关系表达式){
    //语句体
}

执行流程

  • 计算关系表达式
  • 若为 true 执行语句体内的语句,若为 false 则跳过语句体内的语句
  • 继续执行语句体外的语句

if-else语句

语法结构

1
2
3
4
5
if(关系表达式){
    //语句体1
}else{
    //语句体2
}

执行流程

  • 计算关系表达式
  • 若为 true 执行语句体1内的语句,若为 false 则执行语句体2内的语句
  • 继续执行语句体外的语句

if-else if语句

语法结构

1
2
3
4
5
6
7
8
9
if(关系表达式 1){
    //语句体1
}else if(关系表达式 2){
    //语句体2
}
...
else{
  //语句体n+1
}

执行流程

  • 计算关系表达式1
  • 若为 true 执行语句体1内的语句,若为 false 则计算关系表达式2
  • 若为 true 执行语句体2内的语句,若为 false 则计算关系表达式3
  • 以此类推
  • 若所有的关系表达式为 false 则执行语句体n+1

switch语句

语法结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    ......
    default:
        语句体 n+1
        break;
}

执行流程

  • 计算表达式的值
  • 依次与case后面的值比较。若有对应的值就会执行对应的语句体,在执行过程中遇到break结束整个switch语句
  • 若与所有的case后面的值不匹配,便会执行default内的语句体

格式说明

  • 表达式取值只能为byte,short,int,char,enum,string
  • case后面是与关系式匹配的值,只能是字面量不能说变量且不允许重复

注意事项

  • default 可以放在任意位置,也可以省略不写
  • 不写 break会发生case穿透问题,在case匹配过程中若没有break会执行下一个case的语句体,直到遇到 break/大括号

JDK12的新特性

语法格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
switch(表达式)
case 值1 ->
{
	//语句体1
}
case 值2 ->
{
	//语句体2
}
....
default ->{
    //语句体n+1
}

循环结构

for循环

语法格式

1
2
3
4
for(初始化语句;终止条件判断语句;条件控制语句)
{
	//循环体结构
}

执行流程

  • 执行初始化语句
  • 执行条件判断语句,检验其结果
    • 若为 false,循环结束
    • 若为 true,执行循环体语句
  • 执行条件控制语句
  • 单次循环结束后继续执行条件判断语句

while循环

语法格式

1
2
3
4
5
6
// 初始化语句
while(条件判断语句)
{
	// 循环体语句
	// 条件控制语句
}

执行流程

  • 执行初始化语句
  • 执行条件判断语句,检验其结果
    • 若为 false,循环结束
    • 若为 true,执行循环体语句
  • 执行条件控制语句
  • 单次循环结束后继续执行条件判断语句

提示

for和while的对比

相同点:运行规则相同

不同点

  • for循环中控制循环的变量在循环结束后无法被访问,while循环中可以继续使用
  • for循环限定循环次数和范围,while循环不知道循环次数

do-while循环

语法结构

1
2
3
4
5
// 初始化语句
do{
    // 循环体语句
    // 条件控制语句
}while(条件判断语句)

执行流程

  • 执行初始化语句
  • 先执行条件判断语句
  • 执行条件控制语句
  • 单次循环结束后继续执行条件判断语句
    • 若为 false,循环结束
    • 若为 true,执行循环体语句

循环控制语句

break:立即终止当前所在的循环

continue:跳过当前循环的剩余部分,直接进入下一次循环

在嵌套循环中,breakcontinue 仅影响它所在的最近一层循环

最后更新于 2025-06-25 16:09 UTC
그 경기 끝나고 좀 멍하기 있었는데 여러분 이제 살면서 여러가
使用 Hugo 构建
主题 StackJimmy 设计