欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    浙大Java语言程序设计第三讲.ppt

    • 资源ID:6308680       资源大小:1.71MB        全文页数:97页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    浙大Java语言程序设计第三讲.ppt

    1,第 3 章 Java流程控制,3.1语句及程序结构3.2顺序结构3.3选择结构3.4循环结构3.5跳转语句,2,3.1 语句及程序结构,语句向计算机系统发出操作指令的代码程序由一系列语句组成Java语句类型表达式语句表达式;空语句只有一个“;”复合语句用“”将多条语句括起来作为一条语句使用方法调用语句控制语句:包括选择语句、循环语句、转移语句,3,Java 语句类型举例,4,程序结构,程序的3种基本结构 顺序结构 分支结构if 语句、switch 语句 循环结构while 语句、dowhile 语句、for 语句,5,3.2 顺序结构,最简单的一种程序结构程序的执行顺序语句的书写顺序程序的基本顺序数据输入(定义变量、变量赋初值)处理数据(计算)输出结果,6,【例3-1】计算太阳和地球之间的万有引力,程序运行结果:,7,【例3-2】将华氏温度转换为摄氏温度 c=5(f-32)/9,程序运行结果:Fahrenheit=70.0Centigrade=21.11111,8,【例3-3】求解方程ax+b=0的根x,说明:暂时不考虑a为0的情况,9,【例3-3】命令行参数的输入,运行前设置参数在Eclipse“运行配置”窗口的“(x)=自变量”栏中输入:2.0 6.0 这个栏目就是命令行参数单击“运行配置”窗口的“运行”按钮,输出结果:a=2.0b=6.0 x=-3.0说明2.0 作为第1个参数传递给args06.0 作为第2个参数传递给args1,10,【例3-3】命令行参数的输入,在DOS下运行程序设置Java的路径将Root.java复制到指定目录下进入命令提示符 切换当前目录为指定目录编译:javac Root.java执行:java Root 2.0 6.0,11,命令行输入,命令行输入的第一个数a=Float.parseFloat(args0);转换为浮点数命令行输入的是字符串数据,需要转换为计算所需要的数据类型将命令行第i个输入转换为以下类型的数据整型 a=Integer.parseInt(argsi);短整型a=Short.parseShort(argsi);单精度浮点a=Float.parseFloat(argsi);双精度浮点a=Double.parseDouble(argsi),12,3.3 选择结构,选择结构,也叫分支结构根据给定的条件来决定执行不同的程序段Java选择语句if 语句 二选一switch 语句 多选一,13,if 语句,格式1if(布尔表达式)语句格式2if(布尔表达式)语句1else语句2,14,if 语句,格式1if(布尔表达式)语句,格式2if(布尔表达式)语句1else语句2,15,if 语句例子,1.如果星期天不下雨,去西湖划船,否则去茶楼喝茶。if(星期天不下雨)划船;else喝茶;,if 语句可以写成一行或两行if(x=0)y=x;else y=-x;或:if(x=0)y=x;else y=-x;,2.求y=|x|if(x=0)y=x;elsey=-x;,或:if(星期天下雨)喝茶;else划船;,16,if 语句例子,3.找出a 和b两数中的大数,放到max中if(a=b)max=a;else max=b;,或 max=a;if(maxb)max=b;,4.找出a、b 和 c 三个数中的最大数,放到max中 max=a;if(maxb)min=b;if(minc)min=c;,17,if 语句例子,5.判断一个数 n 是奇数还是偶数if(n%2=0)System.out.println(n+is even.);elseSystem.out.println(n+is odd.);,18,【例3-4】通过命令行输入2个整数,输出较小者。,19,【例3-4】改成从键盘输入2个整数,20,【例3-4】改成从键盘输入2个整数,输入:1 2输出:x=1 y=2min=1,21,【例3-5】求解ax+b=0(a0)的根,22,if 语句注 意点,当if 语句包含多条语句时,一定要加“”编写程序时,要注意“”的位置浮点数类型数据的相等比较浮点数在计算机中用近似值表示不使用严格相等比较“=”判断它们的差是否是一个很小的值如:判断float 类型变量a 和b 是否相等的表达式|a-b|0.0000001f,23,if 语句嵌套,在if 语句中包含 if 语句,就形成嵌套当由多个条件来决定执行不同的程序段时使用格式if(布尔表达式1)语句1else if(布尔表达式2)语句2 else if(布尔表达式3)语句3 else if(布尔表达式n)语句nelse 语句n+1,24,条件 00&x=10错误:0 x=10可读性差:0 x&x=10,【例3-6】计算分段函数,x0,25,if(表达式)语句1else 语句2,if 语句,if 语句,嵌套的 if 语句,if(表达式1)if(表达式2)语句1else 语句2 elseif(表达式3)语句3 else 语句4,26,嵌套的if 语句的变化,if(表达式1)if(表达式2)语句1elseif(表达式3)语句3 else 语句4,if(表达式1)if(表达式2)语句1 elseif(表达式3)语句3 else 语句4,27,嵌套的if 语句需注意,if 与 else 的配对原则else总是与离它最近、未匹配过的if 配对如果需要,可以使用“”实现例,c=99,c=0,if(a0)if(b0)c=100;else;else c=99;,c=0,28,switch语句,switch(表达式)case 常量1:语句序列1;break;case 常量2:语句序列2;break;case 常量n:语句序列n;break;default:语句序列n+1;,if 语句中,布尔表达式的值只能有两种:true 或 false若情况更多时,需要提供更多的选择:使用switch语句,/计算表达式,得到值/如果表达式值为常量1,执行语句序列1/终止,结束switch 语句/如果表达式值为常量2,执行语句序列2/终止,结束switch 语句/如果表达式值为常量n,执行语句序列n/终止,结束switch 语句/如果表达式值与常量1常量n都不同,执行语句序列n+1,29,Switch语句执行流程,30,switch 语句注意点,表达式的数据类型必须是byte,char,short,int case 子句中的值必须是常量,而且互不相同 break 语句用来终止switch 语句的执行,即在执行完一个case 分支后,使程序跳出switch 语句,switch(表达式)case 常量1:语句序列1;break;case 常量2:语句序列2;break;case 常量n:语句序列n;break;default:语句序列n+1;,31,【例3-7】,通过 命令行输入112之间的一个整数,输出相应月份的英文单词。,32,【例3-8】成绩转化,将百分制成绩转化为优秀、良好、中等、及格和不及格的5级制成绩。转化标准优秀:90100分良好:8089分中等:7079分及格:6069分不及格:60分以下思路第一步:将百分制划分等级第二步:将等级对应的中文字符输出,构造表达式(grade/10)10010909998089870797606965059540494303932029210191090,优秀优秀良好中等及格不及格不及格不及格不及格不及格不及格,33,【例3-8】成绩转化,存在问题:输入101109,显示等级为“优秀”,34,【例3-8】新的处理思路,输入错误数据时的处理,35,实验示例,输入n表示做n次下面的操作:输入两个正整数,输出它们的和。例:输入:2/表示n=2,做两次操作 10 11 20 30 输出:sum=21sum=50,import;public class Test10097 public static void main(String args)int n,a,b,i,sum;Scanner in=new Scanner(System.in);n=in.nextInt();/输入nfor(i=1;i=n;i+)/*-*/System.out.println(sum=+sum);,a=in.nextInt();/输入ab=in.nextInt();/输入bsum=a+b;/计算和,36,3.4 循环结构,循环结构程序在一定条件下,反复执行一段程序代码被反复执行的程序代码称为循环体Java 循环语句while 语句dowhile 语句for 语句,37,for 语句,格式for(表达式1;表达式2;表达式3)循环体例说明表达式1:循环控制变量赋初值表达式2:布尔型,循环条件,判断循环是否继续表达式3:修改循环控制变量值,38,例:同学们一个学期(56天)的生活用for循环表示 开学报到 for(i=1;i=56;i+)起床早餐上课中餐上课晚餐自习或上课睡觉 考试放假,for 语句,内的就是循环体,39,for 语句执行过程,(1)计算表达式1,给循环控制变量赋初值(2)计算表达式2如果值是true,执行循环体如果值是false,执行(4)(3)计算表达式3,修改循环控制变量值,返回(2)(4)结束循环,执行 for 语句的下一条语句,40,for 语句执行过程,第一步 i=1第二步 1=3?第三步 输出1第四步 i=2,2=3?,输出2,i=3,3=3?,输出3,i=4,4=3?,结束循环,运行结果:123,特别注意:循环结束时循环控制变量的值,41,【例3-12】计算1100之间的整数之和,s=1+2+3+4+100,42,【例3-12】for 语句执行过程,s=0i=1i=100?s=0+1i=2,i=100?,s=1+2,i=3,i=100?,s=1+2+3,i=4,i=100?,结束循环,i=100?,i=101,s=1+2+3+100,i=100,43,【例3-12】拓展,求1 100 所有奇数的和,i+=2,求1 100 所有偶数的和,求1 n 所有整数的和(n 由键盘输入),求n!(n 由键盘输入),1,*,求1+1/2+1/3+1/100,1/i;,44,while 语句,格式 while(布尔表达式)循环体 含义当布尔表达式值为true时,重 复执行循环体,特点先判断,后执行循环次数最少为0 次(一开始表达式值是false),45,while 语句实例分析,运行结果:m=3m=2m=1m=0,m=440?m=4-1输出m=3,30?m=3-1输出m=2,20?m=2-1输出m=1,10?m=1-1输出m=0,00?结束循环,如果修改为:int m=0;则不进入循环,46,while 语句实例分析,运行结果:此程序没有结果,没有走while循环!,死循环!,47,【例3-9】计算10!,运行结果10!=3628800.0,48,【例3-9】while 语句执行过程,i=1 s=1i=10?s=1*1i=2,i=10,i=10?s=1*2i=3,i=10?s=1*2*3i=4,i=10?s=1*2*3*10i=11,i=10?结束循环,这条语句千万别忘写,否则就是死循环!,赋初值 循环条件循环体改变循环变量,死循环的解除方法 单击按 Ctrl+C,49,【例3-9】一个小问题,上题答案:10!=3628800.0正确结果为:10!=3628800如何输出正确结果?强制类型转换 System.out.println(10!=+(long)s);使用格式输出方法 System.out.printf(10!=%.0f,s);,50,【例】统计正数和负数的个数,输入一批整数,以0为结束标志,统计这些数中正数和负数的个数。例:输入 8 15-2 6-11 0 输出 正数3个,负数2个,51,【例】统计正数和负数的个数,循环变量赋初值 循环条件循环体改变循环变量,思考:如果使用do.while 语句,结果会怎样?,52,【例】字母转换,输入一批以问号“?”结束的字符,对“?”以前的每一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。例:输入F=y?输出f=Y,53,【例】字母转换,循环变量赋初值 循环条件循环体改变循环变量,54,dowhile语句,格式do 循环体 while(布尔表达式);含义重 复执行循环体,直到布尔表达式值为false,特点先执行,后判断循环次数至少为1 次(一开始表达式值是false),55,dowhile 语句实例分析,运行结果:m=3m=2m=1m=0,m=4m=4-1输出m=3m0?,m=3-1输出m=2m0?,m=2-1输出m=1m0?,m=1-1输出m=0m0?,结束循环,如果修改为:int m=0;则输出:m=-1,注意分号不能忘,56,【例3-10】计算1+3+5+99,运行结果sum=2500,57,【例3-11】计算 150之间的奇数和与偶数和,运行结果Odd sum=625Even sum=650,58,【例3-13】求Fibonacci数列中的前20项,Fibonacci 数列前两项都是1,以后每项的值都是前两项值之和1 1 2 3 5 8 13 21 34 55 由“兔子问题”引发使用“递推法”解决也叫“迭代法”不断由已知值推出新值,直到求解为止用循环结构来实现迭代的3个环节迭代初始值迭代公式迭代终止条件,59,【例3-13】求Fibonacci数列中的前20项,1 1 2 3 5 8 13 21 34 55 分析迭代算法(1)初始值,f1=1、f2=1(2)迭代公式,fn=fn-1+fn-2(n2),f1f2f3f4f5f6 11f1f2f1f2,f1=1f2=1f3=f1+f2f4=f2+f3fn=fn-1+fn-2,f1=f1+f2f2=f2+f1,在程序中用f1、f2 表示二个数,60,【例3-13】求Fibonacci数列中的前20项,运行结果1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765,循环控制变量可以在for循环中说明,61,【例】求水仙花数,水仙花数一个三位数,其个、十、百位数的立方和等于它本身如:153=1*1*1+5*5*5+3*3*3穷举法对100999中的每一个数,测试是否为水仙花数关键是分离出个位、十位、百位上的数字百位数字a为n/100十位数字b为n/10%10 或 n%100/10个位数字c为n%10满足以下条件的数就是水仙花数n=a*a*a+b*b*b+c*c*c,62,【例】找水仙花数,注意:如果被判断的数不是三位数,就不能使用这种分解方式。,63,【例】整数的各位数字之和,输入一个整数,输出它的各位数字之和例:输入123456输出21 输入120输出3 输入-32输出5关键是分离出各个位上的数字思路个位数字为n%10求和计算 n/10,放入n当 n0时重复以上操作,nn%10n/10120 01212 211 10,64,【例】整数的各位数字之和,65,循环结构程序设计,循环结构的实现要点归纳出哪些操作需要反复执行?循环体这些操作在什么情况下重复执行?循环条件选用合适的循环语句for while do-while事先给定循环次数,首选for通过其他条件控制循环,考虑while或do-while,66,【例3-14】判断素数,什么是素数除了1及自身外,不能被其它整数整除的自然数判断素数的方法对一个自然数 k,用 2 k-1 之间的每个整数进行相除测试如果所有数都不能整除k,则k是素数如果有一个数能整除k,则k不是素数穷举法测试 2 k-1 间的每个整数判断k 能被i 整除的表达式k%i=0,67,算法 输入 k 对 i=2k-1,执行若 k%i=0(可知 k 不是素数),结束循环(否则继续循环,用下一个数测试)显示判断结果若 i=k(说明完成了整个循环),则 k 是素数;否则(ik),k 不是素数说明若循环控制变量 i 超过终值 k-1,则表示直到循环完成,还没遇到一个能整除k的整数,即k是素数;否则k不是素数。若k不是素数,则提前退出循环此时的 i 能把 k 整除,即k可以表示成 k=i*(k/i),【例3-14】判断素数,68,【例3-14】判断素数,69,【例3-14】判断素数,使用标志变量,问题:输入 1 结果是什么?,70,【例】计算多项式之和(一),求1+1/2+1/3+1/n(n 由键盘输入),71,求1-1/2+1/3-1/4+1/5-1/n(n 由键盘输入)系数 1-1 1-1 1-1 flagflag1flag=-flag,【例】计算多项式之和(二),赋初值,循环语句,计算当前项,求和,准备下一项,72,【例】计算多项式之和(三),使用格里高利公式求的近似值,精确到最后一项的绝对值小于104要求除最后一项外,每项绝对值均大于等于0.0001因没有确定项数,故使用 while 语句while(Math.abs(item)=0.0001)计算公式item=flag*1.0/n/当前项,初值 item=1sum+=item/求和,初值 sum=0n+=2/下一项的分母,初值 n=1flag=-flag/实现一次正、一次负,初值 flag=1,73,【例】计算多项式之和(三),运行结果,思考:如果要求所有项的绝对值均大于等于0.0001,应如何修改?,74,【例】计算多项式之和(四),计算 s=20+21+22+23+2n,n从键盘输入,运行结果输入:10输出:sum=2047.0 210=1024.0,75,多重循环,当循环体中包含循环语句时,形成多重循环结构,称为循环嵌套常用的循环嵌套二重循环三重循环,76,二重循环结构示例,内 循 环,外 循 环,77,二重循环实例,注意先执行内循环,内循环结束后才执行外循环中的i+内循环和外循环的控制变量要有区别,78,二重循环实例分析,i=1j=1输出 1j=2输出 2j=3换行 i=2j=1输出 2j=2输出 4j=3换行 i=3j=1输出 3j=2输出 6j=3换行 i=4,运行结果 12 24 36,79,【例】输出九九乘法表,表头表体,80,【例】输出九九乘法表,i,思考:这样修改后输出结果会怎样?,81,【例】输出平面图形,输入一个正整数n(n=1),输出 n 行如下图形A BBB CCCCC DDDDDDD EEEEEEEEE分析有几行每行 有几列每列输出什么,行 1 2 3 4 5,列 1 13 15 17 19,输出内容 A B C D E,A A+1 A+2 A+3 A+4 A+i-1,i 1(2*i-1)?,for(i=1;i=n;i+)for(j=1;j=2*i-1;j+)System.out.print(char)(A+i-1);System.out.println();,82,【例】输出平面图形,83,【例】找水仙花数(穷举法),水仙花数一个三位数,其个、十、百位数的立方和等于它本身如:153=1*1*1+5*5*5+3*3*3,84,【例】找水仙花数(穷举法),对每个数位使用穷举法百位:19十位和个位:0 9,85,【例3-15】计算输出1!,2!,5!以及它们的和,s=1!+2!+3!+4!+5!求和s=0;for(i=1;i=5;i+)s=s+k;其中k 就是 i!,计算k=i!k=1;for(j=1;j=i;j+)k=k*j;System.out.println(i+!=+k);,注意变量s 和k 赋初值的位置是在各自的循环之前,86,【例3-15】计算输出1!,2!,5!以及它们的和,运行结果1!=12!=23!=64!=245!=120Total sum=153,87,【例3-15】使用迭代法 s=1!+2!+3!+4!+5!,多顶式求和问题s=0;for(i=1;i=5;i+)k=?s=s+k;,k 的分析第1 项 1!=1*1第2 项 2!=1!*2第3 项 3!=2!*3第4 项 4!=3!*4第5 项 5!=4!*5第i 项i!=(i-1)!*i,k=k*i;,k=1;,88,【例3-15】使用迭代法 s=1!+2!+3!+4!+5!,89,【例3-16】求 2 50 之间的所有素数,思路对 k=2 50 之间的每个数,执行 判断k是否为素数程序框架 for(k=2;k=50;k+),判断k是否为素数for(i=2;i=k-1;i+)if(k%i=0)break;if(i=k)System.out.println(k);,boolean flag;flag=true;for(i=2;i=k-1;i+)if(k%i=0)flag=false;break;if(flag)System.out.println(k);,90,【例3-16】求 2 50 之间的所有素数,boolean flag;flag=true;for(i=2;i=k-1;i+)if(k%i=0)flag=false;break;if(flag)System.out.println(k);,boolean flag;flag=true;i=2;while(i=k-1)if(k%i=0)flag=false;break;i+;if(flag)System.out.println(k);,91,【例3-16】求 2 50 之间的所有素数,92,【例3-16】求 2 50 之间的所有素数,运行结果2 3 5 7 11 13 17 19 23 29 31 37 41 43 47,93,3.5 跳转语句,break 语句使程序的流程从一个语句块内部跳转出来通常在 switch语句和循环语句中使用用于循环语句时,结束整个循环的执行continue 语句只在循环语句中使用作用是结束本次循环,立即开始新一轮循环跳过循环体中下面的尚未执行的语句,直接进行下一次循环条件的判断对于for 语句,在判断下一次循环条件前,要执行迭代语句,94,【例3-14】判断素数,使用break 语句,跳出循环,95,【例】break 和continue 语句的区别,运行结果i=1i=2,运行结果i=1i=2i=4i=5,96,常用算法,累加、累乘、多项式计算统计个数(计数)求最大值、最小值、平均值求最大公约数和最小公倍数确定一个整数的位数穷举法(素数等)迭代法(Fib、数列),97,求两个正整数 a 和 b 的最大公约数 Step 1 比较 a 和 b 这两个数,将 a 设置为较大的数,b 设置为较小的数;Step 2 a 除以 b,得到余数 r;Step 3 如果 r 等于 0,则最大公约数就是 b;否则将b赋值给a,r 赋值给 b,重复进行第2、3步如:9、6的最大公约数是3,欧几里德算法(辗转相除法),a b r9 6 36 3 0,3,

    注意事项

    本文(浙大Java语言程序设计第三讲.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开