您的位置 首页 java

Java中最让人疑惑的两个循环,5分钟就让你区分清楚-第15节

大家好,我是你的老师父,今天继续上一篇内容,讲循环,学会循环,基本的逻辑控制就都学会了。循环分四种 while、do…while、for和 foreach 。那分别来看:

那这篇讲讲while和do…while吧

while循环

语法:

while(条件) {

// 逻辑

}

while英文意思是什么呢?就是当…的时候,如果…的时候,大家应该明白这个循环的意思了吧, 就是当满足条件的时候就执行循环逻辑,如果条件一直满足,那就会一直执行下去,直到条件不再满足。

举例如下:

while中的条件是a < 5,所以如果a 等于 0,1,2,3,4的时候,条件都会成立。在while中让a的值自增,也就是a++,在自增前和自增后都加了打印a的值,大家看打印结果,会发现在a的最终结果也就是最后一条打印,其实是5,所以再次进入while循环的时候,发现a不是小于5了,那就退出了循环了。

do…while循环

语法:

do {

// 逻辑

} while(条件);

和while不同的是循环体开头是do,那do…while字面意思是什么呢? 就是先做某件事,如果条件成立就继续做这件事。

看代码:

结果其实是一样的,同样是执行了循环,并且在a == 5的时候,条件不成立了,所以退出了循环。

那这两个结果都一样,为什么还要这两种循环呢,那看下图两种循环我都写在一起了,每次执行循环之前,我都把a的值初始化为5,大家先挡住输出结果,想想最终会怎样输出?

实际上是do while循环执行了一次,而while根本没执行!那while循环没执行,都明白,因为条件不满足啊,a的值不小于5。

为什么do while会执行呢?因为do…while循环是先执行do代码块中的逻辑,执行完成后才会去判断while的条件是否满足。

实际使用过程中,这两种循环的话,肯定首选while循环,大部分人也都是这么选的,那do…while什么时候用呢?在java中用的很少,但是也不是没有用,比如分苹果场景:

根据输入的苹果数量appleCount的值,

0的情况也就是 appleCount < 1:首先需要提示“开始分苹果”,如果没有苹果那直接跳到“跟妈妈说分苹果情况”;

1的话也就是appleCount < 2,首先需要提示“开始分苹果”,然后“给妈妈苹果”,最后跳到“跟妈妈说分苹果情况”;

苹果更多的情况也就是两个条件都通过了,首先需要提示“开始分苹果”,然后“给妈妈苹果”,之后“给爸爸苹果”,最后跳到“跟妈妈说分苹果情况”;

那可以看do…while的循环,首先让while的循环条件是false,这样能保证执行一次do就结束,跳到跟“跟妈妈说分苹果情况”,再看循环体,符合if的条件,也就是上边陈述的前两种条件就 break 结束循环。 还记得上次在 switch 中讲的break吧?循环中也会用到break,break的用法就这两种,switch和循环中,都是来终止程序的 循环中使用break,可以结束循环,即使循环条件还是为true,也同样会结束循环 。那回到循环体,如果if条件满足,就结束循环,直接去“告诉妈妈”,否则继续后续逻辑。

当然这个逻辑用if也可以实现,就是代码中if的实现方式。首先大家看到if中用到了一个return,这个是什么意思呢?还记得以前讲类的时候,返回类型吧,可以通过return返回数据,但是如果方法中的返回值是 void ,也可以用return;只不过return后边不用跟数据,那这表明直接退出方法体,这个不要跟break混淆, break只能用在循环和分支中,return是可以用在方法中的任何地方,包含循环和分支以及异常try…catch (后边再讲) 那再说回去,if中每个条件满足后,就会去“告诉妈妈”,那看if中是不是有多个跟妈妈说?那这样代码写起来其实并不是最优,在开发中,同样的逻辑最好是能够统一处理,这就是do…while的一种用处。

但是,这还仅仅是借鉴c和c++的一种的用法,其实java中这种用法也不是很常见,这种场景可以完全用方法来实现,如下:

那再看执行结果,如下截图:

结果是不是也是一样的?这是编程通常的做法。

所以其实do…while的用法并不多,循环的四种方式按使用频率来说 for > foreach > while > do…while,事实上for和foreach使用频率差不多。

下一篇主要讲讲for。

文章来源:智云一二三科技

文章标题:Java中最让人疑惑的两个循环,5分钟就让你区分清楚-第15节

文章地址:https://www.zhihuclub.com/194592.shtml

关于作者: 智云科技

热门文章

网站地图