目录
1.while循环
2.do......while循环
3.For循环
4、练习
5.break & continue
1、break 关键字
2、continue 关键字
3、两者区别
1.while循环
while 是最基本的循环,它的结构为: while( 布尔表达式 ) { //循环内容 }
只要布尔表达式为 true,循环就会一直执行下去。
【图解】在循环刚开始时,会计算一次 “ 布尔表达式 ” 的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次判断是否为真。直到条件不成立,则循环结束。
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
方式有:循环内部控制,外部设立标志位!等
public static void main(String[] args) { int i = 0; //i小于100就会一直循环 while (i<100){ i++; System.out.println(i); } }
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
public static void main(String[] args) { while (true){ //等待客户端连接 //定时检查 //...... } }
循环条件一直为 true 就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成 程序卡死奔溃!
【案例:计算1+2+3+…+100=?】
public static void main(String[] args) { int i = 0; int sum = 0; while (i <= 100) { sum = sum+i; i++; } System.out.println("Sum= " + sum); }
2.do......while循环
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do { //代码语句 }while(布尔表达式);
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true ,则语句块一直执行,直到布尔表达式的值为 false 。
我们用 do...while 改造一下上面的案例!
public static void main(String[] args) { int i = 0; int sum = 0; do { sum = sum+i; i++; }while (i <= 100); System.out.println("Sum= " + sum); }
执行结果当然是一样的!
While 和 do-While 的区别:
while先判断后执行。dowhile是先执行后判断!
Do...while总是保证循环体会被至少执行一次!这是他们的主要差别。
public static void main(String[] args) { int a = 0; while(a<0){ System.out.println(a); a++; } System.out.println("-----"); do{ System.out.println(a); a++; } while (a<0); }
3.For循环
虽然所有循环结构都可以用 while 或者 do...while 表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。
for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
for 循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) { //代码语句 }
关于 for 循环有以下几点说明:
1.最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语 句。
2.然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循
环体后面的语句。
3.执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
4.再次检测布尔表达式。循环执行上面的过程。
【演示: while 和 for 输出】
public static void main(String[] args) { int a = 1; //初始化 while(a<=100){ //条件判断 System.out.println(a); //循环体 a+=2; //迭代 } System.out.println("while循环结束!"); for(int i = 1;i<=100;i++){ //初始化//条件判断 //迭代 System.out.println(i);//循环体 } System.out.println("while循环结束!"); }
我们发现, for 循环在知道循环次数的情况下,简化了代码,提高了可读性。我们平时用到的最多的也是我们的for 循环!
4、练习
【练习 1 :计算 0 到 100 之间的奇数和偶数的和】
public class java1 { public static void main(String[] args) { int i = 0; int j = 0; for (int i1 = 100; i1 > 0; i1--) { if (i1%2==0){ i += i1; }else{ j += i1; } } System.out.println("基数和"+j); System.out.println("偶数和"+i);
【练习 2 :用 while 或 for 循环输出 1-1000 之间能被 5 整除的数,并且每行输出 3 个】
public static void main(String[] args) { for(int j = 1;j<=1000;j++){ if(j%5==0){ System.out.print(j+"\t"); } if(j%(5*3)==0){ System.out.println(); } } }
【练习 3 :打印九九乘法表】
public class java1 { public static void main(String[] args) { for (int i = 1 ; i < 10 ;i++) { for (int i1 = 1; i1 < i+1; i1++) { System.out.print(i+"*"+i1+"="+i*i1+"\t"); } System.out.println(); }
5.break & continue
1、break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
【演示:跳出循环】
public class java1 { public static void main(String[] args) { for (int i1 = 100; i1 > 0; i1--) { if (i1==80){ break; }else{ System.out.println(i1); } }
输出:
2、continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中, continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
【演示】
public class java1 { public static void main(String[] args) { for (int i1 = 0; i1 < 10; i1++) { if (i1==5){ continue; }else{ System.out.println(i1); } }
输出:
我们可以看到并没有5。
3、两者区别
break 在任何循环语句的主体部分,均可用 break 控制循环的流程。 break 用于强行退出循环,不执行循环中剩余的语句。(break 语句也在 switch 语句中使用 )
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。