Java语言程序设计-4

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

语言程序设计刘炯西安电子科技大学–通信工程学院2第四章循环学习目标使用while、dowhile和for语句来控制语句的重复理解循环语句的控制流程使用布尔表达式来控制循环语句了解三种循环类型的异和同编写嵌套循环使用break和continue语句来实现程序控制3while循环while(loop-continuation-contition){//loopbodystatement(s);}Loopcontinuationcondition?statement(s)(loopbody)truefalse//1加到100intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}例子流程图sum=0;number=1;(number=100)?sum=sum+number;number++;truefalse4跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}初始化sum、number5跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}(number=100)istrue6跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}执行加法7跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}number+1,现在是28跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}现在number是29跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}执行加法10跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}number+1,现在是3依此类推......11跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}现在number是10012跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}执行加法13跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}number+1,现在是10114跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}现在number是10115跟踪whileloop:intsum=0;intnumber=1;while(number=100){sum=sum+number;number++;}跳出循环,执行下一条语句16结束循环执行的循环次数通常都是不能预测的。可能要使用一个输入值来标志循环的结束。这样的值称为标志值(sentinelvalue).下面的例子用来计算若干个整数之和,输入0则表示结束。17importjavax.swing.JOptionPane;publicclassSentinelValue{publicstaticvoidmain(String[]args){StringdataString=JOptionPane.showInputDialog(Entervalue(0toexit));intdata=Integer.parseInt(dataString);intsum=0;while(data!=0){sum=sum+data;dataString=JOptionPane.showInputDialog(Entervalue(0toexit));data=Integer.parseInt(dataString);}//DisplayresultJOptionPane.showMessageDialog(null,Sum=+sum);}}18注意:在循环控制中不要比较浮点数相等。因为浮点数是近似的,使用它们可能导致不精确的循环次数和不准确的结果。doubledata=Math.pow(Math.sqrt(2),2)-2;if(data==0){System.out.println(dataiszero);}else{System.out.println(dataisnotzero);}19do-while循环do{//loopbodystatement(s);}while(loop-continuation-contition);Loopcontinuationcondition?statement(s)(loopbody)truefalse流程图同while循环相比,在do-while循环中,循环体至少会被执行一次。20for循环for(initial-action;loop-continuation-condition;action-after-each-iteration){//loopbodystatement(s);}Loopcontinuationcondition?statement(s)(loopbody)truefalseinitial-actionaction-after-each-iteration//1加到100intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}(number=100)?sum=sum+numbertruefalsenumber=1number++21跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}初始化sum、定义number22跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}初始化number=123跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}此时number=1,满足条件24跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}执行加法25跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}一轮循环完成,执行number++number现在是226跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}此时number=2,满足条件27跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}执行加法依此类推......28跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}一轮循环完成,执行number++number现在是101直到number=10029跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}此时number=101,不满足条件30跟踪for循环:intsum=0;intnumber;for(number=1;number=100;number++){sum=sum+number;}退出for循环31注意:for循环的初始条件可以是0个或多个逗号分隔开的表达式。for循环中迭代之后的动作也可以是0个或多个逗号隔开的语句。因此,下面的两个for循环是正确的,尽管实际中很少用到它们。for(inti=1;i100;System.out.println(i++));for(inti=0,j=0;(i+j10);i++,j++){//Dosomething}32注意:如果for循环中的继续循环条件(loop-continuation-condition)被忽略,那么它是隐式为true的for(;;){//loopstatement(s)}等效于while(true){//loopstatement(s)}这是一个无限循环,建议使用这种形式。33举例:编写程序计算从0.01到1.0的数列之和,数列以0.01递增,即0.01+0.02+0.03+…等等importjavax.swing.JOptionPane;publicclassSumTest{publicstaticvoidmain(String[]args){doublesum=0;for(doubledata=0.01;data=1.0;data+=0.01){sum=sum+data;}//DisplayresultJOptionPane.showMessageDialog(null,Sum=+sum);}}34举例:嵌套循环编写九九乘法表importjavax.swing.JOptionPane;publicclassMultiplicationTable{publicstaticvoidmain(String[]args){for(inti=1;i=9;i++){for(intj=1;j=i;j++){System.out.printf(%d*%d=%2d,j,i,i*j);}System.out.println();}}}1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81输出结果:35格式化输出JDK1.5引入一种新的printf方法System.out.printf(format,items);format是一个子串和格式描述符构成的字符串。格式描述符(specifier)指定每个项目应该如何显示。项目可以是数值、字符、布尔值或字符串。每个描述符以百分号开头。format的格式同c/c++中的相同36常用的格式描述符格式描述符输出举例%b布尔值true/false%c字符'a'%d十进制整型数256%f浮点数3.14159%e科学计数法表示的浮点数1.2e+2%s字符串Hello,worldintstudentNum

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功