程序流程控制
一、分支结构
分支结构是计算机编程中的一种结构,用于根据条件的不同选择不同的执行路径。常见的分支结构有if语句和switch语句。
1.1 If分支
单一if语句:
if (条件) {
// 如果条件为真,执行这里的代码块
}
if-else语句:
if (条件) {
// 如果条件为真,执行这里的代码块
} else {
// 如果条件为假,执行这里的代码块
}
if-else if-else语句(也称为if-elseif-else):
if (条件1) {
// 如果条件1为真,执行这里的代码块
} else if (条件2) {
// 如果条件1为假,且条件2为真,执行这里的代码块
} else {
// 如果以上条件都为假,执行这里的代码块
}
嵌套if语句:
if (条件1) {
// 如果条件1为真,执行这里的代码块
if (条件2) {
// 如果条件1和条件2都为真,执行这里的代码块
}
}
1.2 switch分支
匹配条件去执行分支, 适合做值匹配的分支选择
基本语法如下:
switch (表达式) {
case 值1:
// 如果表达式的值与值1相等,执行这里的代码块
break;
case 值2:
// 如果表达式的值与值2相等,执行这里的代码块
break;
// 可以有更多的case分支
default:
// 如果以上所有的值都不匹配,执行这里的代码块
break;
}
注意:1.表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、 不支持double、float、long。
2.case后面的值必须是常量表达式,不能是变量。并且每个case分支结束时要加上break
语句,否则会产生"fall-through"效果,即继续执行下一个case分支。
switch穿透(switch fall-through)是指在一个case分支中没有使用break语句,导致程序继续执行下一个case分支的情况
switch穿透可以在某些情况下用来简化代码。当多个case分支需要执行相同的代码块时,可以省略重复的代码,并且在最后一个case分支中加上break语句来确保正确的退出。
switch (day) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("周末");
break;
default:
System.out.println("无效的输入");
break;
}
当day
的值为1、2、3、4或5时,都会执行对应的代码块,输出"工作日";
而当day
的值为6或7时,会执行第二个case分支,输出"周末";
二、循环结构
2.1 for循环
控制一段代码反复执行很多次
for (初始化; 条件; 更新) {
// 循环体代码块
}
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
2.2 while 循环
在Java语言中,while循环是一种常用的循环结构,用于根据条件重复执行一段代码块,直到条件不满足为止
基本语法如下:
while (条件) {
// 循环体代码块
}
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
与for循环相比,while循环更适合在循环次数不确定的情况下使用,或者需要手动控制循环变量的更新逻辑。同时,也可以结合其他语句(如break和continue)来实现特定的循环控制需求
2.3 do-while循环
在Java语言中,do-while循环是一种循环结构,类似于while循环,但它先执行循环体的代码块,然后再判断条件是否满足,如果条件满足则继续执行循环,否则结束循环
基本语法如下:
初始化语句;
do {
循环体语句;
迭代语句;
} while (循环条件);
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);
do-while循环的特点:一定会先执行一次循环体
2.4死循环
for(;;) {
System.out.println("Hello World");
}
// 经典做法
while(true) {
System.out.println("Hello World");
}
do {
System.out.println("Hello World");
} while (true);
2.5 循环嵌套
循环嵌套是指在一个循环结构内部再包含另一个循环结构,形成多层循环的嵌套关系。在Java中,我们可以使用循环嵌套来处理更加复杂的问题,例如遍历二维数组、打印图形等。
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("* ");
}
System.out.println();
}
三、跳转关键字:break、continue
break : 跳出并结束当前所在循环的执行
continue: 用于跳出当前循环的当次执行,进入下一次循环
拓展:
break : 可以用在嵌套循环中跳出整个外部循环的并立即结束它。
OUT:
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
…
break OUT;
}
}
continue: 可以用在嵌套循环中跳出外部循环的当次执行,进入外部循环的下一次。
OUT:
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
…
count OUT;
}
}
推荐chat-gpt网站,我学习编程时,遇到不懂的概念和代码,直接在上面获取答案:gpthx.cn
后面我会持续更新java整个技术体系
我手中有最新的IT实战项目和java学习交流群,加wx:hh1388668进群,免费送一个IT实战项目。