欢迎来到天天文库
浏览记录
ID:39331212
大小:260.76 KB
页数:28页
时间:2019-07-01
《JAVA第4章—循环结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章循环结构本章学习重点while、do-while以及for语句。跳转语句break和continue。分支及循环结构的嵌套编程。较复杂程序的执行流程分析。4.1循环结构在进行程序设计时,经常会碰到一些计算并不很复杂,但却要重复进行相同的处理操作的问题。比如:(1)计算累加和1+2+3+…+100。(2)计算阶乘,如10!。(3)计算一笔钱在银行存了若干年后,连本带息有多少?问题(1),用一条语句:sum=1+2+3+…+100来求解,则赋值表达式太长,改成多条赋值语句:sum+=1;sum+=2;sum+=3;…;sum+=100;也不行,即便加到100那也有100条语句,程序过于
2、臃肿,不利编辑、存储和运行。Java语言引入三种语句:while、do-while以及for来解决这类问题。我们把这类问题的结构称为循环结构,把这三种实现语句称为循环语句。这三种循环语句的流程图如下所示:while语句while语句的一般语法格式如下:while(条件表达式){循环体;}while是关键字,首先计算条件表达式的值,若为true则执行循环体,然后再计算条件表达式的值,只要是true就循环执行,直到布尔值为false才结束退出while结构。循环体可以是复合语句、简单语句甚至是空语句,一般情况下,循环体中应包含有能修改条件表达式取值的语句,否则就容易出现“死循环”(程序毫无意
3、义地无限循环下去)。例如:while(1);这里,循环体为一空语句,而条件表达式为一常量1(Java语言里,0代表false,非0为true),因此这是一死循环。【例4-1】利用while语句实现1到100的累加。publicstaticvoidmain(String[]args){intsum=0;//累加和变量suminti=1;//控制变量iwhile(i<=100){sum+=i;i++;}System.out.println("累加和为:"+sum);}(1)存放累加和的变量初始值一般赋值为0。(2)变量i既是累加数,同时又是控制变量(控制循环体的循环次数)。(3)循环体语句s
4、um+=i;i++;可以合并简写为:sum+=i++;但对于初学者而言,不建议这么写。(4)while循环体语句多于一条,因而必须以复合语句形式出现,千万别漏了大括号。【例4-2】利用while语句求10的阶乘。publicclassTest{publicstaticvoidmain(String[]args){longjc=1;inti=1;while(i<=10){jc*=i;i++;}System.out.println((i-1)+"!结果:"+jc);}}本程序需要注意的要点有:(1)求阶乘的积时,变量jc初始值应为1。(2)由于阶乘的积,数值往往比较大,因此要注意防止溢出,比
5、如尽量选用取值范围大的长整型long。【例4-4】有一条长的阶梯,如果每步2阶,则最后剩1阶,每步3阶则剩2阶,每步5阶则剩4阶,每步6阶则剩5阶,只有每步7阶的最后才刚好走完,一阶不剩,问这条阶梯最少共有多少阶?publicclassTest{publicstaticvoidmain(String[]args){inti=1;while(!(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)){i++;}System.out.println("这条阶梯最少有:"+i+"阶");}}假如现在想算出在1万个阶梯内,都有哪些阶梯数满足题意的话,可以这样改写程序中的
6、while结构:while(i<=10000){if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)System.out.print(i+"阶");i++;}新程序运行结果如下:119阶329阶539阶749阶959阶1169阶1379阶1589阶1799阶2009阶2219阶2429阶2639阶2849阶3059阶3269阶3479阶3689阶3899阶4109阶4319阶4529阶4739阶4949阶5159阶5369阶5579阶5789阶5999阶6209阶6419阶6629阶6839阶7049阶7259阶7469阶7679阶7889阶8099阶83
7、09阶8519阶8729阶8939阶9149阶9359阶9569阶9779阶9989阶do-while语句do-while语句的语法格式如下:do{循环体;}while(条件表达式);【例4-5】假定在Bank中存款额5000元,按6.25%的年利率计算,试问过多少年后就会连本带利翻一翻?试编程实现之。publicclassTest{publicstaticvoidmain(String[]args){doublem=5000.0;
此文档下载收益归作者所有