Java中的流程控制语句
Java的程序控制语句分为以下几类:选择,重复和跳转。
- 根据表达式结果或变量状态选择语句来使你的程序选择不同的执行路径。
- 重复语句使程序能够重复执行一个或一个以上语句(也就是说,重复语句形成循环)。
- 跳转语句允许你的程序以非线性的方式执行。
语句块:
语句块是由一对花括号{}括起来的若干条简单的java语句;块确定了变量的作用域,一个块可以包含在另一个块中;
不能再两个嵌套的块中声明同名的变量;
选择语句if和switch
Java支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。
if语句:
if语句是Java中的条件分支语句。它能将程序的执行路径分为两条。if语句的完整格式如下:
代码语言:java复制if (condition) statement1;
else statement2;
其中,if和else的对象都是单个语句(statement),也可以是程序块。条件condition可以是任何返回布尔值的表达式。else子句是可选的。if语句的执行过程如下:
如果条件为真,就执行if的对象(statement1); 否则,执行else的对象(statement2)。 任何时候两条语句都不可能同时执行。
还可以用多个 if … else if … 串联;
它的语法如下:
代码语言:java复制if(condition)
statement;
else if(condition)
statement;
else if(condition)
statement;
.
.
.
else
statement;
条件表达式从上到下被求值。一旦找到为真的条件,就执行与它关联的语句,该阶梯的其他部分就被忽略了。如果所有的条件都不为真,则执行最后的else语句。
最后的else语句经常被作为默认的条件,即如果所有其他条件测试失败,就执行最后的else语句。如果没有最后的else语句,而且所有其他的条件都失败,那程序就不做任何动作。
代码语言:java复制public class DemoControl {
public static void main(String[] args) {
int a =1,b=2;
if (a>b){
System.out.println("a大于b");
}else if (a==b){
System.out.println("a等于b");
}else {
System.out.println("a小于b");
}
}
}
switch语句:
switch语句是Java的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。
switch 语句根据 switch (表达式) 计算的结果,跳转到匹配的 case 结果,然后继续执行后续语句,直到遇到 break 结束执行。
switch语句的通用形式如下:
代码语言:java复制switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
.
.
.
case valueN:
// statement sequence
break;
default:
// default statement sequence
}
switch语句的执行过程如下:
代码语言:java复制表达式的值与每个case语句中的常量作比较。 如果发现了一个与之相匹配的,则执行该case语句后的代码。 如果没有一个case常量与表达式的值相匹配,则执行default语句 如果没有相匹配的case语句,也没有default语句,则什么也不执行。 在case语句序列中的break语句将引起程序流从整个switch语句退出。
public class DemoControl {
public static void main(String[] args) {
int a = 1,b = 2;
switch (a b){
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println(4);
break;
default:
System.out.println("noting");
}
}
}
Java 7 中,switch 的参数可以是 String 类型了。到目前为止 switch 支持这样几种数据类型:byte 、short、int 、char 、String 。
循环语句
循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环。
Java的循环语句有for,while和 do-while。
while
while语句是Java最基本的循环语句。当它的控制表达式是真时,hile语句重复执行一个语句或语句块。它的通用格式如下:
代码语言:java复制while(condition) {
// body of loop
}
条件condition可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件condition为假时,程序控制就传递到循环后面紧跟的语句行。
do-while
为while语句在循环一开始就计算条件表达式,若开始时条件为假,则循环体一次也不会执行。
有时需要在开始时条件表达式即使是假的情况下,while循环至少也要执行一次。而不是在循环开始时。
Java就提供了这样的循环:do-while循环。do-while循环总是执行它的循环体至少一次,因为它的条件表达式在循环的结尾。它的通用格式如下:
代码语言:java复制do {
// body of loop
} while (condition)
do-while循环总是先执行循环体,然后再计算条件表达式。如果表达式为真,则循环继续。否则,循环结束。对所有的Java循环都一样,条件condition必须是一个布尔表达式。
for
for循环是一个功能强大且形式灵活的结构。下面是for循环的通用格式:
代码语言:java复制for(initialization; condition; iteration) {
// body
}
for循环的执行过程如下。
- 第一步,当循环启动时,先执行其初始化部分;初始化表达式仅被执行一次。
- 下一步,计算条件condition的值。条件condition必须是布尔表达式。它通常将循环控制变量与目标值相比较。如果这个表达式为真,则执行循环体;如果为假,则循环终止。
- 再下一步执行循环体的反复部分。这部分通常是增加或减少循环控制变量的一个表达式。
- 接下来重复循环,首先计算条件表达式的值,然后执行循环体,接着执行反复表达式。
- 这个过程不断重复直到控制表达式变为假。
Java允许你在for循环的初始化部分和反复部分声明多个变量,每个变量之间用逗号分开
在Java中可以使for循环的初始化、条件或者反复部分中的任何或者全部都为空
代码语言:java复制for( ; ; ) {
// ...
}
这个循环将始终运行,因为没有使它终止的条件。
Java还提供了另一种 for each 循环:
和 for 循环相比, for each 循环的变量n不再是计数器,而是直接对应到数组的每个元素。 foreach 循环的写法也更简洁。但是, for each 循环无法指定遍历顺序,也无法获取数组的索引
跳转语句
Java 支持 3 种跳转语句:break,continue和return。这些语句把控制转移到程序的其
他部分;
break
使用break语句直接强行退出循环,忽略循环体中的任何其他语句和循环的条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面的语句重新开始。
break不是被设计来提供一种正常的循环终止的方法。循环的条件语句是专门用来终止循环的。只有在某类特殊的情况下,才用break语句来取消一个循环
continue
break 会跳出当前循环,也就是整个循环都不会执行了。而 continue 则是提前结束本次循环,直接继续执行下次循环。
在多层嵌套的循环中, continue 语句同样是结束本次自己所在的循环
return
return语句用来明确地从一个方法返回。也就是,return语句使程序控制返回到调用它的方法。
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!