《(精品)java基础教程(6).ppt》由会员分享,可在线阅读,更多相关《(精品)java基础教程(6).ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第六章第六章循环结构循环结构 学习目标:学习目标:while语句 for循环结构 do循环 break和continue关键字使用循环循环循循环环语语句句的的作作用用是是反反复复执执行行同同一一块块代代码码直到满足结束条件。直到满足结束条件。在在现现实实世世界界的的许许多多问问题题中中需需要要用用到到循循环环控制。例如:累加求和。控制。例如:累加求和。while循环循环 语法形式为:语法形式为:语法形式为:语法形式为:while(while(布尔表达式布尔表达式布尔表达式布尔表达式)语句块;语句块;语句块;语句块;执行过程:执行过程:1、先计算布尔表达式布尔表达式布尔表达式布尔表达式2、若为真
2、真则执行语句块,并转回再计算布尔表达式布尔表达式布尔表达式布尔表达式3、若为假假 则跳出循环,执行后面的语句。小心:一定不要在小心:一定不要在while(布尔表达式)后面加;(布尔表达式)后面加;while循环的流程图循环的流程图 truefalsefalse循环体循环体布尔表达式布尔表达式例:用例:用例:用例:用whilewhile语句求语句求语句求语句求1+2+101+2+10的和。的和。的和。的和。publicclasspublicclassWhileTryWhileTry publicstaticvoidmain(Stringpublicstaticvoidmain(Stringarg
3、sargs)intinti;i;intintsum=0;/sum=0;/累加器清累加器清累加器清累加器清0 0i=1;i=1;/i/i的初始值为的初始值为的初始值为的初始值为1 1 while(i=10)while(i=10)sum+=i;sum+=i;i+;i+;System.out.println(sumSystem.out.println(sum=+sum);=+sum);查看结果:WhileTry.java要打印一个如下所示的矩形 内部循环打印列,外部循环打印行“行慢列快”嵌套嵌套while循环循环查看结果:NestedWhileLoop.java按照预先定义好的次数循环执行一组语句等
4、同于while循环,但有更集中的结构for循环循环语法形式为:语法形式为:语法形式为:语法形式为:for(for(表达式表达式表达式表达式1 1;表达式表达式表达式表达式2 2;表达式表达式表达式表达式3 3)语句块;语句块;语句块;语句块;for循环的流程图循环的流程图 每个每个forfor语句都有一个用于决语句都有一个用于决定循环开始和结束的变量,定循环开始和结束的变量,通常称这个变量为通常称这个变量为循环控制循环控制变量变量。表达式表达式1 1用来给循环控制变量用来给循环控制变量赋初值,它只在循环开始的赋初值,它只在循环开始的时候时候执行一次执行一次。表达式表达式2 2是一个布尔表达式,
5、是一个布尔表达式,用来决定何时终止循环。用来决定何时终止循环。表达式表达式3 3用于改变循环控制变用于改变循环控制变量的值。量的值。truetruefalsefalse求解表达式求解表达式3 3表达式表达式2 2循环体循环体forfor语句的下一句语句的下一句求解表达式求解表达式1 1 for循环示例 例如,要使循环执行某一段代码例如,要使循环执行某一段代码例如,要使循环执行某一段代码例如,要使循环执行某一段代码10001000次,可以表达为:次,可以表达为:次,可以表达为:次,可以表达为:for(for(intinti=0;i1000;i+)i=0;i1000;i+)/一段代码一段代码一段代
6、码一段代码 for(inti=1;i=1;i-)for(inti=7;i=77;i+=7)i是循环控制变量可将while(布尔表达式布尔表达式)语句块语句块改写为:for(;布尔表达式布尔表达式;)语句块语句块例:用例:用例:用例:用forfor语句求语句求语句求语句求1+2+101+2+10的和的和的和的和 publicclasspublicclassForTryForTry publicstaticvoidmain(Stringpublicstaticvoidmain(Stringargsargs)intinti,sum;i,sum;sum=0;sum=0;/累加器清累加器清累加器清累加器
7、清0 0for(i=1;i=10;i+)for(i=1;i=10;i+)sum+=i;sum+=i;System.out.println(sumSystem.out.println(sum=+sum);=+sum);用for循环完成要打印一个如下所示的矩形 嵌套嵌套for循环循环进一步:如何实现对打印的行和列的值可随意控制和修改?嵌套for循环查看结果:NestedForLoop.java语法形式do语句块;while(布尔表达式);执行过程:先执行一次循环体中的语句,然后测试先执行一次循环体中的语句,然后测试先执行一次循环体中的语句,然后测试先执行一次循环体中的语句,然后测试布尔表达式布尔表
8、达式布尔表达式布尔表达式的值。如果的值。如果的值。如果的值。如果布布布布尔表达式尔表达式尔表达式尔表达式的值为的值为的值为的值为真真真真,那就返回执行循环体中的内容。,那就返回执行循环体中的内容。,那就返回执行循环体中的内容。,那就返回执行循环体中的内容。do-whiledo-while语语语语句将不断地测试句将不断地测试句将不断地测试句将不断地测试布尔表达式布尔表达式布尔表达式布尔表达式的值并执行循环体中的内容直到的值并执行循环体中的内容直到的值并执行循环体中的内容直到的值并执行循环体中的内容直到布尔布尔布尔布尔表达式表达式表达式表达式的值为的值为的值为的值为假假假假为止。为止。为止。为止。
9、注意:注意:while(布尔表达式布尔表达式)后面必须有后面必须有;do循环循环do-while循环的流程图循环的流程图 true循环体循环体布尔表达式布尔表达式falsefalse查看结果:FindAThree.javaWhile可以无限次地重复执行语句,并且执行语句的次数可以是0次或多次Do可以无限次地重复执行语句,并且执行语句的次数可以是1次或多次For可以按照预先定义好的次数循环执行语句比较多种循环结构比较多种循环结构查看结果:TestDo.javabreak语句语句break用在switch中,作为各个分支的出口。break用在while、for和do循环,可终止循环。在嵌套循环中,
10、一个break语句只向外跳出一层。break用在if语句中,满足条件时便跳出。查看结果:BreakLoop.java和 BreakLoop2.javawhile(true)与与for(;)均是无限循环,均是无限循环,需要需要break语句跳出循环语句跳出循环continue语句语句 continue语句只能用在while、for和do循环,用来终止当前这一轮的循环,重新判断循环条件,决定是否重新开始下一轮的循环。而不是终止整个循环的执行。public class public class ContinueTestContinueTest public static void public st
11、atic void main(Stringmain(String argsargs)for(intfor(int i=0;i10;i+)i=0;i10;i+)System.out.print(iSystem.out.print(i+);+);if(i%2)=0)if(i%2)=0)continue;continue;System.out.printlnSystem.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,而不是true3)int i=0,sum;while(i=100)sum+=i;i+;错误错误1:sum使用前未初始化使用前未初始化错误错误2:少:少 ,造成无限循环造成无限循环
限制150内