1、第六章 循环结构,学习目标: while语句 for循环结构 do循环 break和continue关键字使用,循环,循环语句的作用是反复执行同一块代码直到满足结束条件。在现实世界的许多问题中需要用到循环控制。例如:累加求和。,while 循环,语法形式为:while (布尔表达式)语句块; 执行过程:1、先计算布尔表达式2、若为真则执行语句块,并转回再计算布尔表达式3、若为假 则跳出循环,执行后面的语句。小心:一定不要在while(布尔表达式)后面加;,while 循环的流程图,true,false,例:用while语句求1+2+10的和。,public class WhileTry pub
2、lic static void main(String args) int i;int sum=0; /累加器清0 i=1;/i的初始值为1while (i=10) sum+=i; i+; System.out.println(sum=+sum); ,查看结果:WhileTry.java,要打印一个如下所示的矩形 内部循环打印列,外部循环打印行“行慢列快”,嵌套while循环,查看结果:NestedWhileLoop.java,按照预先定义好的次数循环执行一组语句等同于while循环,但有更集中的结构,for循环,语法形式为:for (表达式1;表达式2;表达式3) 语句块;,for循环的流程
3、图,每个for语句都有一个用于决定循环开始和结束的变量,通常称这个变量为循环控制变量。 表达式1用来给循环控制变量赋初值,它只在循环开始的时候执行一次。 表达式2是一个布尔表达式,用来决定何时终止循环。 表达式3用于改变循环控制变量的值。,for循环示例,例如,要使循环执行某一段代码1000次,可以表达为:for (int i=0; i= 1; i- )for ( int i = 7; i = 77; i += 7 ),i是循环控制变量,可将while(布尔表达式) 语句块改写为:for (;布尔表达式;) 语句块,例:用for语句求1+2+10的和,public class ForTry p
4、ublic static void main(String args) int i,sum; sum=0; / 累加器清0 for(i=1;i=10;i+) sum+=i; System.out.println(sum=+sum); ,用for循环完成要打印一个如下所示的矩形 ,嵌套for循环,进一步:如何实现对打印的行和列的值可随意控制和修改?,嵌套for循环,查看结果:NestedForLoop.java,语法形式do语句块;while(布尔表达式);执行过程:先执行一次循环体中的语句,然后测试布尔表达式的值。如果布尔表达式的值为真,那就返回执行循环体中的内容。do-while 语句将不断
5、地测试布尔表达式的值并执行循环体中的内容直到布尔表达式的值为假为止。 注意: while(布尔表达式)后面必须有;,do 循环,do-while 循环的流程图,true,false,查看结果:FindAThree.java,While可以无限次地重复执行语句,并且执行语句的次数可以是0次或多次Do可以无限次地重复执行语句,并且执行语句的次数可以是1次或多次For可以按照预先定义好的次数循环执行语句,比较多种循环结构,查看结果:TestDo.java,break 语句,break用在switch中,作为各个分支的出口。break用在while、for和do循环,可终止循环。在嵌套循环中,一个br
6、eak语句只向外跳出一层。 break用在if语句中,满足条件时便跳出。,查看结果:BreakLoop.java和 BreakLoop2.java,while(true) 与for (;) 均是无限循环,需要break语句跳出循环,continue 语句,continue语句只能用在while、for和do循环,用来终止当前这一轮的循环,重新判断循环条件,决定是否重新开始下一轮的循环。而不是终止整个循环的执行。,public class ContinueTestpublic static void main(String args)for(int i=0;i10;i+)System.out.p
7、rint(i+ );if(i%2)=0)continue; System.out.println();,查看结果:ContinueTest.java,查看结果:Multiples.java,练习,请指出下面各个程序片段存在的错误1) int i=0; while(i10); i+; System.out.println(i+”; ”); ,此处的;,2) for(double x=0.1;x!=1.0;x+=0.1) System.out.println(x+”; ”);,!应当慎重对浮点数作等于或不等于判断,(15.2%0.5)=0.2 /结果为false,而不是true,3)int i=0,sum; while(i=100) sum+=i; i+;,错误1:sum使用前未初始化错误2:少 ,造成无限循环,