java 循环do while_Java循环结构(while、do...while、for),break和continue的用法及区别...

现在有一个需求:打印1-100的数字,每10个换一行。

如果我们直接使用输出语句的话,会打印到崩溃。。。

Java中除了有顺序结构、选择结构,也有循环结构,可以用循环结构来解决这个问题:从定义一个变量一开始为1,每输出一个数,变量就+1,直到变量等于100,就结束。

Java中有三种循环:while,do...while,for

1.while

语法:

初始化语句;

while(条件表达式)

{ //循环体

//满足条件(为 true 时)执行语句

//迭代语句(退出机制,当不再满足条件时就会退出)

}

//不满足条件则会直接跳过

package com.dh.control;

public class WhileDemo {

public static void main(String[] args) {

//1.初始化变量

int i = 1;

//count用于计数(10个数换一行)

int count = 0;

while(i<=100){ //2.条件表达式

//3.执行语句

System.out.print(i+"\t");

count++;//计数器+1

if(count%10 == 0){

System.out.println();

}

//4.迭代语句(退出机制)

i++;

}

}

}

f612db7859aefbea2be6a3173c640c04.png

注意:如果没有退出机制,或者条件永远为true时,程序就没有办法跳出循环,程序就会一直运行,称为死循环。

一定要尽量避免书写死循环程序,除非真的有使用死循环的需求!

while(true){

}

2.do...while

语法:

初始化语句;

do{

//循环执行体

//迭代语句

}while(条件表达式); //不满足条件表达式则跳过则结束循环语句

将上述问题,采用do...while循环来解决:

package com.dh.control;

public class DoWhile {

public static void main(String[] args) {

int i = 1;

int count = 0;

do{

System.out.print(i+"\t");

i++;

count++;

if(count%10 == 0){

System.out.println();

}

}while (i<=100);

}

}

319f3de3ceec6e72dd10f2a2799672f3.png

那while和do...while有什么区别呢?看下面这个案例

package com.dh.control;

public class Demo {

public static void main(String[] args) {

int i = 1;

//do...while

do {

System.out.println("do...while执行了");

} while (i < 0);

//while

while (i < 0) {

System.out.println("while执行了");

}

}

}

30e1c162131f9182ee817310d81b6483.png

通过观察实验结果,可以看出do...while和while的用法是一致的,只不过do…while 先执行再判断(无论如何都会先执行一次循环执行体中的代码)、while 是先判断再执行,如果条件一开始就不满足,就不会执行循环执行体代码。

3.for

语法:

for((1)初始化变量;(2)条件;(4)更新循环遍历){

//(3)循环体

}

(按照 1234 的顺序执行,1 和 4 可以放在外部,2 省略了的话没有结束条件将会死循环)

我们再用for来解决上述问题:

package com.dh.control;

public class ForDemo {

public static void main(String[] args) {

int count = 0;//计数器

for(int i = 1;i<=100;i++){ //初始化变量;结束条件;迭代变量(退出机制)

System.out.print(i+"\t");

count++;

if(count%10 == 0){

System.out.println();

}

}

}

}

c8a5404fdf42f16d20ff5b916097cdc0.png

可以看到,也是可以输出结果的,在大多数情况下,for循环会比while、do...while循环更简洁,推荐使用for循环!

将初始化变量和变量迭代放在for()外,也是可以的,但是建议放在里面:

5be07cd989ffd1e9819ca68800c1cbc3.png

4.break和continue的用法和区别

break

如果现在改了需求呢:我想决定我什么时候不再输出了,即我想让它输出到多少就到多少。

此时就需要一个还未等到循环终止条件,就强制退出的机制,在switch的时候,我们使用了break,在while里也是一样的。

此处使用for循环作为循环结构:while和do...while同理

package com.dh.control;

public class BreakDemo {

public static void main(String[] args) {

int count = 0;

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

System.out.print(i+"\t");

//使用break退出循环

if(i == 55){

break;

}

count++;

if(count%10 == 0){

System.out.println();

}

}

}

}

140f26c041ce1b3819359f79e0dabab4.png

可以看到,程序输出到55的时候就不再继续输出了。

continue

但是此时我们又修改了需求呢,我想打印1-100之间除了5的倍数的数,一行输出8个。

此时通过分析需求,只要我们可以跳过某次循环,即5的倍数的时候就跳过,再继续循环,就可以达到目的了。

Java使用continue来跳出当前次的循环

package com.dh.control;

public class ContinueDemo {

public static void main(String[] args) {

int count = 0; //计数器

for(int i = 1;i<=100;i++){ //初始化变量;结束条件;迭代变量(退出机制)

//使用continue跳出当前循环,遇到continue就跳出,不再执行剩余循环执行体里面的代码

//回到for

if(i % 5 == 0){

continue;

}

System.out.print(i+"\t");

count++;

if(count%8 == 0){

System.out.println();

}

}

}

}

我们来看看结果:

8b475f7f5d84c8047640af3a655e29d7.png

结果是达到了我们的需求的。

总结:

break:用于跳出整个循环。(通常在循环中与条件语句一起使用,也可用于选择语句);

continue:跳过当前次循环,即跳过循环体中剩余的语句而执行下一次循环(只能用在循环里,也通常和条件语句一起使用,加速循环)。

有错误望指出~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值