Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt

上传人:小飞机 文档编号:1995380 上传时间:2022-12-30 格式:PPT 页数:35 大小:1.17MB
返回 下载 相关 举报
Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt_第1页
第1页 / 共35页
Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt_第2页
第2页 / 共35页
Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt_第3页
第3页 / 共35页
Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt_第4页
第4页 / 共35页
Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计(第2版)丁振凡第3章ppt课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、3.1.1 if语句,(1)格式1:无else的if语句 if (boolean-expression) statement1; ,3.1 条件选择语句,思考A、B指谁?,例3-1 从键盘输入三个数,输出其中的最大者。,import javax.swing.*;public class Max public static void main(String args) int a, b, c, max; String s; s = JOptionPane.showInputDialog(输入第1个整型数:); a = Integer.parseInt(s); s = JOptionPane.sh

2、owInputDialog(输入第2个整型数:); b = Integer.parseInt(s); s = JOptionPane.showInputDialog(输入第3个整型数:); c = Integer.parseInt(s);,例3-1(续),max=a; if (bmax) max=b; if (cmax) max=c ; JOptionPane.showMessageDialog(null,最大值是: +max); ,【思考】如果用Math.max方法来实现求3个数的最大值,如何用一个表达式实现?,Math.max( a , Math.max(b,c),格式2:带else的if

3、语句,if (boolean-expression) statement1; / if块 else statement2; / else块 ,思考A、B、C指谁?,if 语句的嵌套 (求a、b、c三个数中最大数 ),if (ab) if(ac) System.out.println(三个数中最大值是: +a); else System.out.println(三个数中最大值是: +c); else /ac) System.out.println(三个数中最大值是: +b); else System.out.println(三个数中最大值是: +c); ,最近匹配原则,if (x3) Syste

4、m.out.println(3=6);,Else与最近的if匹配,让else语句匹配前一个if,if (x3) System.out.println(3=6);,思考运行结果?,public class test public static void main(String args) int x=1,y=1,z=1; if (-x=0 ,结果x=0,y=2,z=1,阶梯else if 例3-2,输入成绩,根据分数段输出信息,ublic class Ex3_2 public static void main(String args) int s= Integer.parseInt(args0)

5、; if (s60) System.out.println(不及格); else if (s70) System.out.println(及格); else if (s80) System.out.println(中); else if (s90) System.out.println(良); else System.out.println(“优”); /90分以上 ,3.1.2 多分支语句switch,switch (expression) case value1 : statement1; break; /分支1 case value2 : statement2; break; /分支2

6、. case valueN : statementN; break; /分支n default : 缺省语句块; /分支n+1, 其它,【几点说明】,表达式的值只能是整型、字符型、字符串,同时要与case分支的判断值的类型一致。计算出表达式的值后,它首先与第一个case分支进行比较,若相同,执行第一个case分支的语句块;否则再检查第二个分之,依次类推。 case子句中的值valueN必须是常量,各个case子句中的值不同。 如果没有情况匹配,就执行default指定的语句,但default子句本身是可选的。 break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止sw

7、itch语句的执行,否则,找到一个匹配的情况后面所有的语句都会被执行。,import javax.swing.*;public class Score public static void main(String args)int s=Integer.parseInt(JOptionPane.showInputDialog(输入学生分数:);int x=s/10; switch (x) case 0: case 1: case 2: case 3: case 4:case 5: System.out.println(不及格);break; case 6: System.out.println(

8、及格);break;case 7: System.out.println(中);break;case 8: System.out.println(良);break;case 9: case 10: System.out.println(优); ,例3-2也可采用switch语句实现,3.2.1 while语句,while语句的一般形式是:,例3-3 在三位数中找出所有水仙花数,水仙花数的条件是该数等于其各位数字的立方和。,ublic class Narcissus public static void main(String arge) int i, j, k, n=100, m=1; whi

9、le (n1000) i = n/100; /获取最高位 j = (n-i*100)/10; /获取第2位 k = n%10; /获取最低位 if (Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)=n) System.out.println(找到第 + m+ + 个水仙花数:+n); n+; ,例3-4 从键盘输入一个长整数,求其各位数字之和。,ublic class Ex3_4 public static void main (String args) long a,m=0; a= Long.parseLong( JOptionPane.showInput

10、Dialog(输入整数); while(a0) m+=a%10; /累加计算各位数字 a=a/10; System.out.print(a+的各位数字之和=+m); ,3.2.2 do.while语句,格式如下:,特点:“先执行,后判断”,do 循环体 while (条件表达式);,3.2.3 for语句,格式如下:,例3-5 求1+1/2+1/3+1/4+1/100的值,public class Ex3_5 public static void main(String args) double sum=1; for (int k=2;k=100;k+) sum = sum+ 1.0/k; S

11、ystem.out.println(1+1/2+1/3+1/4 +1/100= +sum); ,用1/k行吗?,例3-6 求Fibonacci数列的前10个数。,ublic class Ex3_6 public static void main(String args) int n0 = 0, n1 = 1, n2; System.out.print(n0 + + n1 + ); for(int i = 0; i 8; i+) n2 = n1 + n0; /计算 System.out.print(n2 + ” ); n0 = n1; /递推 n1 = n2; ,0 1 1 2 3 5 8 13

12、 21 34,n0 n1 n2,例3-7 利用随机函数产生10道2位数的加法测试。,import javax.swing.*;public class Ex3_7 public static void main(String args) int score = 0; for (int i=0;i10;i+) int a = 10 + (int)(90*Math.random(); int b = 10 + (int)(90*Math.random(); String s=JOptionPane.showInputDialog(a+b+=? ); int ans = Integer.parseI

13、nt(s); if (a + b = ans) score = score + 10 ; /每道题10分 JOptionPane.showMessageDialog(null, your score= +score); ,4. 循环嵌套,与条件语句的嵌套类似,循环也可以嵌套。三种循环语句可以自身嵌套,也可以相互嵌套。嵌套将循环分为内外两层,外层循环每循环一次,内循环要执行一圈 .,例3-8 :找3-50之间的素数,for (int n=3;n=50;n+) /外循环 boolean f=true; int k=2; while (f ,1. break语句,两种使用形式: break 不带标号

14、,从break直接所处的循环体中跳转出来。 break 标号名 带标号, 跳出标号所指的代码块,执行块后的下一条语句。,3.3 跳转语句,例3-9 四位同学中一位做了好事,班主任问这四位是谁做的好事。A说“不是我”;B说“是C”。C说“是D”;D说“C胡说”。已知有3人说真话.,ublic class Good public static void main(String args) int man; /1-A,2-B,3-C,4-D for (man=1;man=4;man+) int a=(man!=1)?1:0; int b=(man=3)?1:0; int c=(man=4)?1:0;

15、 int d=(man!=4)?1:0; if (a+b+c+d=3) break; /man为当前值时,有3位所说是真 ,switch (man) case 1: System.out.println(the man is A); break; case 2: System.out.println(the man is B); break; case 3: System.out.println(the man is C);break; case 4: System.out.println(the man is D); ,2. continue语句,有两种形式: continue 不带标号,终

16、止当前一轮的循环,继续下一轮判断 continue 标号名 带标号, 跳转到标号指明的外层循环中,例3-10 输出1020之间不能被3或5整除的数,public class ContinueTest public static void main(String args) int j=9; do j+; if(j%3=0|j%5=0) continue; System.out.print(j + ); while(j20); ,思考以下问题,什么是条件表达式,它的值是何种类型?if语句嵌套匹配原则?谈谈switch语句的执行特点?dowhile循环和while循环的差别?for循环头有哪部分构

17、成?某个部分可以没有吗? for(;) 是什么意思?break和continue语句的作用?带标号是什么意思?使用什么办法将一组语句组合为个语句块?,写出运行结果,public class Test5 public static void main(String args) for(int i=1;i3;i+) for (int j=0;j2;j+) System.out.print(t+(i+j); System.out.println(); ,结果 1 2 2 3,程序段对应的运行结果,int i = 10,j = 10;boolean b = false;if ( b = i = j)

18、System.out.println(True);else System.out.println(False);,结果True,程序段对应的运行结果,int m=8,n=5;while (m2) if (mn) m = m-n;else n = n-m;System.out.println(m+”,”+n);,结果1,2,过程(0) 循环前 m=8,n=5(1)第1轮后,m=3,n=5(2)第2轮后,m=3,n=2(3)第3轮后,m=1,n=2结束循环,程序段对应的运行结果,int x=23659;String m=result=;while (x0) m = m + x%10; x = x/

19、10;System.out.println(m);,结果result=95632,过程(0) m=“result=”,x=23659(1) m=“result=9”,x=2365(2) m=“result=95”,x=236(3) m=“result=956”,x=23(4) m=“result=9563”,x=2(5) m=“result=95632”,x=0结束循环,程序段对应的运行结果,outer: for (int i=1;i3;i+) for (int j=1;j4;j+) if (i=1 ,结果i=1 j=1i=2 j=1i=2 j=2i=2 j=3,编程练习,从键盘输入a,b,c三个实数,计算方程ax2+bx+c=0的根。计算n至少多大时,以下不等式成立。 1+1/2+1/3+1/n6,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号