Java循环结构(while、do...while、for),break和continue。
。。
现在有⼀个需求:打印1-100的数字,每10个换⼀⾏。
如果我们直接使⽤输出语句的话,会打印到崩溃。。。
Java中除了有顺序结构、选择结构,也有循环结构,可以⽤循环结构来解决这个问题:从定义⼀个变量⼀开始为1,每输出⼀个数,变量就+1,直到变量等于100,就结束。
Java中有三种循环:while,do...while,for
1.while
语法:
初始化语句;
while(条件表达式)
{ //循环体
//满⾜条件(为 true 时)执⾏语句
//迭代语句(退出机制,当不再满⾜条件时就会退出)
}
//不满⾜条件则会直接跳过
package l;
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++;
}
}
}
注意:如果没有退出机制,或者条件永远为true时,程序就没有办法跳出循环,程序就会⼀直运⾏,称为死循环。
⼀定要尽量避免书写死循环程序,除⾮真的有使⽤死循环的需求!
while(true){
}
while
语法:
初始化语句;
do{
//循环执⾏体
//迭代语句
}while(条件表达式); //不满⾜条件表达式则跳过则结束循环语句
将上述问题,采⽤do...while循环来解决:
package l;
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);
}
}
那while和do...while有什么区别呢?看下⾯这个案例
package l;
public class Demo {
while语句怎么退出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执⾏了");
}
}
}
通过观察实验结果,可以看出do...while和while的⽤法是⼀致的,只不过do…while 先执⾏再判断(⽆论
如何都会先执⾏⼀次循环执⾏体中的代码)、while 是先判断再执⾏,如果条件⼀开始就不满⾜,就不会执⾏循环执⾏体代码。
3.for
语法:
for((1)初始化变量;(2)条件;(4)更新循环遍历){
//(3)循环体
}
(按照 1234 的顺序执⾏,1 和 4 可以放在外部,2 省略了的话没有结束条件将会死循环)
我们再⽤for来解决上述问题:
package l;
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();
}
}
}
}
可以看到,也是可以输出结果的,在⼤多数情况下,for循环会⽐while、do...while循环更简洁,推荐使⽤for循环!
将初始化变量和变量迭代放在for()外,也是可以的,但是建议放在⾥⾯:
4.break和continue的⽤法和区别
break
如果现在改了需求呢:我想决定我什么时候不再输出了,即我想让它输出到多少就到多少。
此时就需要⼀个还未等到循环终⽌条件,就强制退出的机制,在switch的时候,我们使⽤了break,在while⾥也是⼀样的。此处使⽤for循环作为循环结构:while和do...while同理
package l;
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();
}
}
}
}
可以看到,程序输出到55的时候就不再继续输出了。
continue
但是此时我们⼜修改了需求呢,我想打印1-100之间除了5的倍数的数,⼀⾏输出8个。
此时通过分析需求,只要我们可以跳过某次循环,即5的倍数的时候就跳过,再继续循环,就可以达到⽬的了。
Java使⽤continue来跳出当前次的循环
package l;
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();
}
}
}
}
我们来看看结果:
结果是达到了我们的需求的。
总结:
break:⽤于跳出整个循环。(通常在循环中与条件语句⼀起使⽤,也可⽤于选择语句);
continue:跳过当前次循环,即跳过循环体中剩余的语句⽽执⾏下⼀次循环(只能⽤在循环⾥,也通常和条件语句⼀起使⽤,加速循环)。
有错误望指出~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论