《JAVA流程控制》PPT课件.ppt_第1页
《JAVA流程控制》PPT课件.ppt_第2页
《JAVA流程控制》PPT课件.ppt_第3页
《JAVA流程控制》PPT课件.ppt_第4页
《JAVA流程控制》PPT课件.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA语言程序设计 第三章 流程控制,计算机之所以成为当代最重要的信息处理工具,就是因为它有记忆、能进行逻辑判断、计算速度快的特点。计算机实现的所有功能都是在指令的指挥下进行的,而指令的集合就是程序。 程序有三种基本结构即顺序结构、分支结构和循环结构。,为实现分支结构程序设计,JAVA语言提供了条件分支语句if和多重分支语句switch,根据它们所包含的逻辑表达式的值决定程序执行的方向。,顺序结构就是按照指令的先后顺序依次执行。,循环结构的程序可以对反复执行的程序段进行精炼,用较少的语句执行大量重复的工作。JAVA提供了for 、while和do-while三种循环语句,If语句是最常用的条件判断语句,根据if语句逻辑表达式的取值,决定程序的执行路线。,If语句格式 If(条件) 执行(语句块1) ,括号中的条件是逻辑表达式,其值为true执行语句块1,否则直接执行if 语句的下一条语句。花括号中的多个语句被看成是一条复合语句,/本程序从命令行输入两个数据与给定的值50进行比较,/若大于50则输出结果 public class Condition3_1 public static void main(String args) int x,serial,y=0; x=Integer.parseInt(args0); serial=Integer.parseInt(args1); if(x50) y=x*serial; System.out.println(“y=“+y); ,程序运行结果 路径 java Condition3_1 55 11 Y=605,把字符串转化为整形 Byte.parseByte(“); long.parselong(“); Float.parseFloat(“); Double.parseDouble(“);,/本程序从命令行输入两个数据与给定的值50进行比较,若大于/50则输出结果 public class Condition3_2 public static void main(String args) int x,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根据学生的考试成绩,给出通过和没有通过的提示信息. /该程序执行时不要忘记在命令行中给出参量值 public class Exam public static void main(String args) float score; score=Float.parseFloat(args0); if(score=60.0) System.out.println(“祝贺您的考试成绩通过了!“); else System.out.println(“很遗憾,您的考试成绩没有通过“); ,本程序通过对键盘输入的score值进行判断,给出不同的输出结果 C:jdkjava Exam 67 祝贺您的考试通过了!,if(条件) 语句块1 else if(条件) 语句块2 else if(条件) 语句块3 else if(条件) 语句块4,If语句的嵌套,所谓嵌套是指程序中存在有多个if语句。如果一条if语句之后还有if语句,或else语句之后还有if语句,就构成了if条件语句的嵌套。,/给出任意三个数,通过使用if语句嵌套,将它们/按从小到大排序 import javax.swing.JOptionPane; /*导入swing包中的类JOptionPane*/ public class Arrange3_4 public static void main(String args) String str; double x,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; else if(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,Case 1 case 2,Case 3 case 4,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通过键盘输入月份,输出相应月份的英文单词 /注意月份是在命令行中给出的 public class Month public static void main(String args) int month; month=Short.parseShort(args0); switch(month) case 1: System.out.println(“January“);break; case 2: System.out.println(“February“);break; case 3: System.out.println(“March“);break; case 4: System.out.println(“April“);break; case 5: System.out.println(“May“);break; case 6: System.out.println(“June“);break; case 7: System.out.println(“July“);break; case 8: System.out.println(“August“);break; case 9: System.out.println(“September“);break; case 10: System.out.println(“October“);break; case 11: System.out.println(“Novenber“);break; case 12: System.out.println(“December“);break; ,循环结构控制由三种循环语句实现,循环语句有循环体和循环条件两部分组成。,while 语句的一般形式 while (条件) 循环体 ,while 循环语句流程图,/给定一个循环变量,当变量大于0时采用while语句输出循环变量的值,public class Cyc3_6 public static void main(String args ) int m=4; while(m0) m=m-1; System.out.println(“m“+m); ,例计算10!,public class Fact public static void main(String args ) int i; double s; i=1;s=1; while(i=10) s=s*i; i+; System.out.println(“10!=“+s); ,如何求任意整数的阶乘?,public class Fact1 public static void main(String args ) int i,n; double s; i=1;s=1;n=Integer.parseInt(args0); while(i=n) s=s*i; i+; System.out.println( n+“!=“ +s); ,import javax.swing.JOptionPane; public class Fact2 public static void main(String args ) int i,n; String str; double s; i=1;s=1; str=JOptionPane.showInputDialog(“请输入要求的阶乘”); n=Integer.parseInt(str); while(i=n) s=s*i; i+; System.out.println( n+“!=“ +s); System.exit(0); ,do-while 语句的一般形式,do 循环体 while(条件),do-while 语句的流程图,do-while 语句 与while语句的区别是 本语句不管条件是否满足都先进入循环体,即先进体后判断;而while语句是先判断,根据条件表达式的值决定是否进入循环体,循环体语句,条件?,false,true,/给定一个循环变量,采用do-while语句输出循环变量的值 public class Cyc3_7 public static void main(String args ) int m=4; do m=m-1; System.out.println(“m“+m); while(m0); ,程序运行结果 m=3 m=2 m=1 m=0,考虑初值为m=0时,两种循环语句执行结果有何变化,/打印正整数1-50中的奇数之和与偶数之和,程序运行结果 奇数和=625 偶数和=650,public class Cyc3_8 public static void main(String args ) int i,oddsum,evensum; i=1;oddsum=0;evensum=0; do if(i%2=0) evensum+=i; else oddsum+=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,public class Sum3_9 public static void main(String args) int i,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),public class Fibonacci public static void main(String args) int i,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 从键盘输入,import javax.swing.JOptionPane;/导入swing包中的OptionPane类 public class Sele3_10 public static void main(String args) double x,y=0; int m; String str; for(int i=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) case 1:y=Math.abs(x);break;/引用Math类的abs()方法 case 2:y=1; for(int j=1;j=x;j+) y*=j; break; case 3: y=Math.log(x);break;/引用Math类的log()方法 System.out.println(“y=“+y); System.exit(0);/退出程序 ,循环嵌套是指在循环体中包含有循环语句的情况。三种循环语句即可以自身进行嵌套,也可以相互进行嵌套构成多重循环。多重循环自内向外展开,即先执行内循环,后执行外循环。多重循环不允许相互交叉。,/分别输出1!、2!、3!、.6! 以及它们的和,计算结果 1!=1 2!=2 3!=6 41=24 5!=120 6!=720,1!+2!+3!+4!+5!+6!=873,public class Factorial3_11 public static void main(String args) long sum=0; for(int i=1;i=6;i+) long m=1; for(int j=1;j=i;j+) m*=j; System.out.println(i+“!=“+m); sum+=m; System.out.println(“1!+2!+3!+.+6!=“ +sum); ,/ 使用级数求近似值 ex=1+1!+x2/2!+xn/n!+ /其中x=0.2,0.4,0.8,计算精度为0.000001,public class Series3_12 public static void main(String args) double i,m,n,x,y,m1; for(i=0.2;i0.000001); System.out.println(“i=“+i+“ “+“结果m1= “+m1); System.out.println(“i=“+i+“ “+“结果m= “+m); ,跳转语句即强行改变程序执行顺序的语句,其中break语句在switch 语句中已得到应用。只使用break只能退出内循环;要想达到从内循环体中直接跳转出外循环的目的, 必需与label标号语句连用 。,/计算1+2+3+.直到所加和大于1000为止 public class Sum3_13 public static void main(String args) int i,m=0; for( i=1;i+) / m+=i; if(m1000)break; System.out.println(“i=“+i+“ 结果=“+m); ,程序运行结果 i=45 结果=1035,/证明自然数3-10000之间的数是否符合角谷猜想 /角谷猜想:任何正整数n,如果是偶数则除以2(n/2)如果是奇数,则乘3加1 /(3*n+1)得到一个新数,继续这样处理,最后的数一定是1,运行结果 数3到10000之间的数符合角谷猜想,public class Quess3_14 public static void main(String args) double i,n; search: /*语句标号*/ for( i=3;i=10000;i+) n=i; do if(n%2=0)n/=2; else n=n*3+1; if(n1) System.out.println(“i=“+i); System.out.println(“this quess is fail“); break search; / 退出for循环体 while(n=1); System.out.println(“数3到10000之间的数符合角谷猜想“); ,/求解2-100之间的素数(素数是指除了能被1和自身整除外,/不能被其他数所整除的数,在循环体中,如果自然数n能够被指定范围的数整除,那么这个数就不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论