《JAVA流程控制》PPT课件.ppt

上传人:tia****nde 文档编号:11498990 上传时间:2020-04-26 格式:PPT 页数:33 大小:318.50KB
返回 下载 相关 举报
《JAVA流程控制》PPT课件.ppt_第1页
第1页 / 共33页
《JAVA流程控制》PPT课件.ppt_第2页
第2页 / 共33页
《JAVA流程控制》PPT课件.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
JAVA语言程序设计第三章流程控制,计算机之所以成为当代最重要的信息处理工具,就是因为它有记忆、能进行逻辑判断、计算速度快的特点。计算机实现的所有功能都是在指令的指挥下进行的,而指令的集合就是程序。程序有三种基本结构即顺序结构、分支结构和循环结构。,为实现分支结构程序设计,JAVA语言提供了条件分支语句if和多重分支语句switch,根据它们所包含的逻辑表达式的值决定程序执行的方向。,顺序结构就是按照指令的先后顺序依次执行。,循环结构的程序可以对反复执行的程序段进行精炼,用较少的语句执行大量重复的工作。JAVA提供了for、while和do-while三种循环语句,If语句是最常用的条件判断语句,根据if语句逻辑表达式的取值,决定程序的执行路线。,If语句格式If(条件)执行(语句块1),括号中的条件是逻辑表达式,其值为true执行语句块1,否则直接执行if语句的下一条语句。花括号中的多个语句被看成是一条复合语句,/本程序从命令行输入两个数据与给定的值50进行比较,/若大于50则输出结果publicclassCondition3_1publicstaticvoidmain(Stringargs)intx,serial,y=0;x=Integer.parseInt(args0);serial=Integer.parseInt(args1);if(x50)y=x*serial;System.out.println(y=+y);,程序运行结果路径javaCondition3_15511Y=605,把字符串转化为整形Byte.parseByte();long.parselong();Float.parseFloat();Double.parseDouble();,/本程序从命令行输入两个数据与给定的值50进行比较,若大于/50则输出结果publicclassCondition3_2publicstaticvoidmain(Stringargs)intx,serial,y;x=Integer.parseInt(args0);serial=Integer.parseInt(args1);if(x50)y=x*serial;System.out.println(y=+y);,/与例3-1的区别是if语句后面有花括号,条件?,语句块2,语句块1,true,false,Ifelse语句格式if(条件)(语句块1)else(语句块2),括号中的条件是逻辑表达式,其值为true执行语句块1,其值为false执行语句块2。两种情况在完成各自的任务之后,于if的下一条语句会合。,3-3根据学生的考试成绩,给出通过和没有通过的提示信息./该程序执行时不要忘记在命令行中给出参量值publicclassExampublicstaticvoidmain(Stringargs)floatscore;score=Float.parseFloat(args0);if(score=60.0)System.out.println(祝贺您的考试成绩通过了!);elseSystem.out.println(很遗憾,您的考试成绩没有通过);,本程序通过对键盘输入的score值进行判断,给出不同的输出结果C:jdkjavaExam67祝贺您的考试通过了!,if(条件)语句块1elseif(条件)语句块2elseif(条件)语句块3elseif(条件)语句块4,If语句的嵌套,所谓嵌套是指程序中存在有多个if语句。如果一条if语句之后还有if语句,或else语句之后还有if语句,就构成了if条件语句的嵌套。,/给出任意三个数,通过使用if语句嵌套,将它们/按从小到大排序importjavax.swing.JOptionPane;/*导入swing包中的类JOptionPane*/publicclassArrange3_4publicstaticvoidmain(Stringargs)Stringstr;doublex,y,z,t;str=JOptionPane.showInputDialog(“请输入第一个数”);/用JOptionPane类的输入对话框输入数据x=Double.parseDouble(str);str=JOptionPane.showInputDialog(请输入第二个数);y=Double.parseDouble(str);str=JOptionPane.showInputDialog(请输入第三个数);z=Double.parseDouble(str);if(xy)t=x;x=y;y=t;if(xz)t=x;x=z;z=t;else,if(yz)t=y;y=z;z=t;elseif(xz)t=x;x=z;z=t;if(yz)t=y;y=z;z=t;if(yz)t=y;y=z;z=t;System.out.println(最小值+x);System.out.println(中间值+y);System.out.println(最大值+z);System.exit(0);,Switch语句,条件,语句块1,语句块3,语句块4,语句块2,Case1case2,Case3case4,Switch(表达式)case值1:语句块1;break;case值2:语句块2;break;case值3:语句块3;break;case值n:语句块n;break;default:语句块n+1;,1、Switch语句中的表达式的数据类型可以是byte、char、short、int类型,不允许浮点型和long型。2、根据表达式值与case语句后面的匹配情况决定程序执行的分支3、每个case语句都要有break语句4、不匹配的情况执行default语句,3-5通过键盘输入月份,输出相应月份的英文单词/注意月份是在命令行中给出的publicclassMonthpublicstaticvoidmain(Stringargs)intmonth;month=Short.parseShort(args0);switch(month)case1:System.out.println(January);break;case2:System.out.println(February);break;case3:System.out.println(March);break;case4:System.out.println(April);break;case5:System.out.println(May);break;case6:System.out.println(June);break;case7:System.out.println(July);break;case8:System.out.println(August);break;case9:System.out.println(September);break;case10:System.out.println(October);break;case11:System.out.println(Novenber);break;case12:System.out.println(December);break;,循环结构控制由三种循环语句实现,循环语句有循环体和循环条件两部分组成。,while语句的一般形式while(条件)循环体,while循环语句流程图,/给定一个循环变量,当变量大于0时采用while语句输出循环变量的值,publicclassCyc3_6publicstaticvoidmain(Stringargs)intm=4;while(m0)m=m-1;System.out.println(m+m);,例计算10!,publicclassFactpublicstaticvoidmain(Stringargs)inti;doubles;i=1;s=1;while(i=10)s=s*i;i+;System.out.println(10!=+s);,如何求任意整数的阶乘?,publicclassFact1publicstaticvoidmain(Stringargs)inti,n;doubles;i=1;s=1;n=Integer.parseInt(args0);while(i=n)s=s*i;i+;System.out.println(n+!=+s);,importjavax.swing.JOptionPane;publicclassFact2publicstaticvoidmain(Stringargs)inti,n;Stringstr;doubles;i=1;s=1;str=JOptionPane.showInputDialog(“请输入要求的阶乘”);n=Integer.parseInt(str);while(i0);,程序运行结果m=3m=2m=1m=0,考虑初值为m=0时,两种循环语句执行结果有何变化,/打印正整数1-50中的奇数之和与偶数之和,程序运行结果奇数和=625偶数和=650,publicclassCyc3_8publicstaticvoidmain(Stringargs)inti,oddsum,evensum;i=1;oddsum=0;evensum=0;doif(i%2=0)evensum+=i;elseoddsum+=i;while(+i=50);System.out.println(奇数和+oddsum);System.out.println(偶数和+evensum);,计算1+3+5+99,for语句的一般形式for(设定初值;循环条件;修改表达式)循环体;,给定一个初值,条件?,修改表达式,循环体语句,for语句使用时需注意1、括号中的任何一个表达式都可以省略2、循环体中可以有空语句3、初值和修改表达式可用逗号得到多重表达式如:for(i=1,sum=0;i=n;sum+=i,i+),/计算1+2+3+.+100,程序运行结果sum=5050,在使用循环语句求和时,注意要先在循环外,将求和的变量赋初值为0,publicclassSum3_9publicstaticvoidmain(Stringargs)inti,sum=0;for(i=1;i=100;i+)sum+=i;/与sum=sum+i等价System.out.println(sum=+sum);,求Fibonacci的前20项递推定义如下:Fiab(n)=1(n=1,2)Fiab(n)=fib(n-2)+fib(n-3),publicclassFibonaccipublicstaticvoidmain(Stringargs)inti,f1,f2;f1=1;f2=1;for(i=1;i=10;i+)System.out.println(f1+f2+);f1=f1+f2;f2=f2+f1;,从键盘输入一个数判断该数是否素数,/计算|x|(x=20)de值x从键盘输入,importjavax.swing.JOptionPane;/导入swing包中的OptionPane类publicclassSele3_10publicstaticvoidmain(Stringargs)doublex,y=0;intm;Stringstr;for(inti=1;i=3;i+)str=JOptionPane.showInputDialog(请输入一个浮点数);/显示输入对话框x=Double.parseDouble(str);/将字符串转化为double型System.out.println(x=+x);,m=(x0)?1:(x20)?2:3);switch(m)case1:y=Math.abs(x);break;/引用Math类的abs()方法case2:y=1;for(intj=1;j=x;j+)y*=j;break;case3:y=Math.log(x);break;/引用Math类的log()方法System.out.println(y=+y);System.exit(0);/退出程序,循环嵌套是指在循环体中包含有循环语句的情况。三种循环语句即可以自身进行嵌套,也可以相互进行嵌套构成多重循环。多重循环自内向外展开,即先执行内循环,后执行外循环。多重循环不允许相互交叉。,/分别输出1!、2!、3!、.6!以及它们的和,计算结果1!=12!=23!=641=245!=1206!=720,1!+2!+3!+4!+5!+6!=873,publicclassFactorial3_11publicstaticvoidmain(Stringargs)longsum=0;for(inti=1;i=6;i+)longm=1;for(intj=1;j1000)break;System.out.println(i=+i+结果=+m);,程序运行结果i=45结果=1035,/证明自然数3-10000之间的数是否符合角谷猜想/角谷猜想:任何正整数n,如果是偶数则除以2(n/2)如果是奇数,则乘3加1/(3*n+1)得到一个新数,继续这样处理,最后的数一定是1,运行结果数3到10000之间的数符合角谷猜想,publicclassQuess3_14publicstaticvoidmain(Stringargs)doublei,n;search:/*语句标号*/for(i=3;i=10000;i+)n=i;doif(n%2=0)n/=2;elsen=n*3+1;if(n1)System.out.println(i=+i);System.out.println(thisquessisfail);breaksearch;/退出for循环体while(n=1);System.out.println(数3到10000之间的数符合角谷猜想);,/求解2-100之间的素数(素数是指除了能被1和自身整除外,/不能被其他数所整除的数,在循环体中,如果自然数n能够被指定范围的数整除,那么这个数就不是素数,使用break语句从循环体退出,再试下一个,publicclassSamp3_15publicstaticvoidmain(Stringargs)inti,j,half,n;for(i=2;ihalf)System.out.println(素数=+i);,Break语句在程序还没有执行完循环时,强行退出循环,执行循环体后面的语句。而continue语句只结束本次循环,即本次循环不再执行continue语句后面的语句,继续执行下一次循环语句或循环判定。,/输出1-5除了3以外的数,计算结果如下i=1i=2i=4i=5,publicclassNumber3_16publicstaticvoidmain(Stringargs)for(inti=1;i=5;i+)if(i=3)continue;elseSystem.out.println(i=+i);,/求当02000)break;System.out.println(n-1);,如果结果值在1002000之间,就输出n的值;结果值小于100,就使用continue语句,继续循环读取下一个n值,结果值大于2000,使用break语句直接退出循环,练习与习题,1、试说明while和dowhile语句的差异?2、试读入一个16位的长整型,利用switch语句计算09这十个数字中,每个字出现的次数?3、假如有一条绳子长3000米,每天减去一半,请问需要花费几天时间,绳子的长度会短于5米?4、水仙花数是指其个位、十位和百位三个数的平方和等于这个三位数本身,求出所有的水仙花数。5、地球的半径为6400公里,假设世界上跑得最快的长跑健将可以用9.8秒跑完100米,那么他用这个速度绕赤道跑一圈,需要几天时间?6、试利用dowhile循环,计算1!+2!+100!的总和,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!