java流程语句_Java流程控制语句
发布日期:2021-06-24 11:23:56 浏览次数:3 分类:技术文章

本文共 3772 字,大约阅读时间需要 12 分钟。

1.执行控制

Java的代码一般情况下是从上到下,逐行执行的。以“;”结尾的是一条简单语句,而封闭在括号内的则是复合语句。

2.条件语句

if-else条件语句

if-else条件语句是最简单的条件语句。其中else是可选项,用来表示if的分支。下面看一个简单的if-else。

if(1>0){

System.out.println("进入了if");

}else{

System.out.println("进入了else");

}

这里由于1>0,if成立,所以执行打印“进入了if”;如果把1>0改为1<0,则会进入else块。if-else可以写多个并列,如下:

if(1>0){

System.out.println("进入了if");

}else{

System.out.println("进入了else");

}

if(1<0){

System.out.println("进入了if");

}else{

System.out.println("进入了else");

}

if-else也可以嵌套写,如下:

int i=3;

if(i>0){

System.out.println("i大于0");

if(i>2){

System.out.println("i大于2");

}

}else{

System.out.println("i小于0");

}

这里由于i大于0,所以会进入外层if的代码块,输出“i大于0”;然后i>2,进入内层if条件,输出“i大于2”。    if-else还有一种特殊的阶梯形式写法,如下:

int i=3;

if(i==1){

System.out.println("i等于1");

}else if(i==2){

System.out.println("i等于2");

}else{

System.out.println("i不等于1也不等于2");

}

这里第一个if条件,i==1不成立,然后进入第二个if条件,i==2也不成立,最后进入else输出“i不等于1也不等于2”。

switch条件语句

switch条件语句的逻辑与if-else的阶梯形类似,代码如下:

int i=3;

switch (i) {

case 1:

System.out.println("i等于1");

break;

case 2:

System.out.println("i等于2");

break;

case 3:

System.out.println("i等于3");

break;

default:

System.out.println("i不等于1或2或3");

break;

}

switch的表达式必须是byte、short、int或者char的一种,case的值必须和表达式的类型一致并且不能重复。它会计算表达式的值,然后与case对比,如果值相等,那么执行case块内的代码,在case块结尾看到break后跳出switch。如果case块中没有break,那么会继续执行一下个case块内容,直到看到break关键字。如果没有匹配的case,则执行default块内容。

3.循环语句

while循环

while循环是Java中最基本的循环语句。示例如下:

int i=1;

while(i<4){

System.out.println("循环第"+i+"次");

i++;

}

这里i=1,while的表达式i<4,成立,所以进入while的代码块,执行输出并且i自增;i=2,while的表达式i<4,成立,再次执行while的代码块,执行输出并且i再自增;i=3,while的表达式i<4成立,再次执行while的代码块输出并且i自增;这时i=4,不满足while的表达式,循环也就终止了。这里只要while的表达式内成立,就会一直循环,所以用while的时候一定要注意表达式,不要让while成为无限循环也就是死循环。

do-while循环

while虽然能执行循环的操作,但是也有缺陷,如果表达式的条件一开始就为false的话,while里的代码是一次都不会执行的,可有时候我们需要循环体内的代码至少执行一次,这里我们就用到了do-while。

int i=1;

do{

System.out.println("循环第"+i+"次");

i++;

}while(i<4);

do-while大体和while相同,唯一的区别就是do-while至少会执行一次循环体内的代码。

for循环

for循环是增强型的循环语句,示例如下:

for(int i=1;i<3;i++){

System.out.println("循环第"+i+"次");

}

for的表达式第一个分号前是初始化值,这个值是用来控制循环的;第二个分号前的语句是终止循环的条件,当不满足这个条件时则跳出循环;最后一个值则是控制第一个值的。

for循环也支持多个变量来控制循环次数,示例如下:

for(int i=1,j=3;i

System.out.println("循环第"+i+"次");

}

这里循环只会执行一次,第一次i=1,j=3,i

for的三个语句都可以单独拿出去写,如下:

boolean j = true;

for(int i=1;j;i++){

if(i==2){

j=false;

}

System.out.println("循环第"+i+"次");

}

这里执行2次,当i=2时,j=false跳出循环。

boolean j = true;

int i=1;

for(;j;){

if(i==2){

j=false;

}

System.out.println("循环第"+i+"次");

i++;

}

这里与上面的输出相同。

for(;;){

}

这里是一个没有条件的for循环

4.跳出语句

break语句

break可以跳出当前最小循环,示例如下:

for(int i=1;i<=50;i++){

System.out.println(i);

if(i==5){

break;

}

}

这里会输出1、2、3、4、5,当i=5时,break跳出了循环,将不会继续输出。而如果是嵌套循环,break只能跳出当前最小循环,而外层循环则会继续执行。

for(int i=1;i<=50;i++){

System.out.println("i:"+i);

for(int j=1;j<10;j++){

System.out.println("j:"+j);

if(j==2){

break;

}

}

}

这里i会输出1到50,然后每个i输出之间会输出1和2。break也可以跳出代码块,示例如下:

block1: { //带标记的语句块

block2: {

for (int i = 1; i <= 50; i++) {

System.out.println("i:" + i);

for (int j = 1; j < 10; j++) {

System.out.println("j:" + j);

if (j == 2) {

break block2;

}

}

}

System.out.println("block2");

}

System.out.println("block1");

}

System.out.println("main");

这里我们会输出i:1,j:1,j:2,block1,main。这里当j=2的时候,break跳出block2,所以会执行block1和main。

continue语句

continue是跳过当前最小循环的本次循环,执行下一次循环。

for (int i = 1; i <= 3; i++) {

if(i==2){

continue;

}

System.out.println(i);

}

这里会输出1,3,当i=2的时候,continue会跳过本次循环,所以不会输出2。continue和break一样,也可以对代码块进行跳转,如下:

block1:for (int i = 1; i <= 5; i++) {

System.out.println("i:"+i);

for(int j=1;j<4;j++){

if(j==2){

continue block1;

}

System.out.println("j:"+j);

}

}

这里i会输出1到5,在i之间会输出j:1,这里每当内层循环的j=2的时候,continue便跳出内层循环,执行被标记为block1的外层循环上执行。

return语句

return用来结束当前方法,只要看见了return,不论这个方法后面还有什么代码,通通不执行。示例如下:

for (int i = 1; i <= 5; i++) {

System.out.println("i:"+i);

for(int j=1;j<4;j++){

if(j==2){

return;

}

System.out.println("j:"+j);

}

}

这里会输出i:1,j:1,当内层循环的j=2的时候,return结束了该方法。

转载地址:https://blog.csdn.net/weixin_32473663/article/details/114251714 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java require_java正则中的requireEnd和hitEnd
下一篇:java 注解 数组默认值_Java注解默认值

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 23时51分23秒