版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、J a v a 语 言 程 序 设 计 ( 第 2 版 )3.1 3.1 条件选择语句条件选择语句 if if语句语句、多分支语句多分支语句switchswitch3.2 3.2 循环语句循环语句 3.2.1 while 3.2.1 while语句语句 3.2.2 do 3.2.2 dowhilewhile语句语句 3.2.3 for 3.2.3 for语句语句3.3 3.3 跳转语句跳转语句 break break语句语句、continuecontinue语句语句J a v a 语 言 程 序 设 计 ( 第 2 版 )3.1 if3.1 if语句语句(1 1)格式)格式1 1:无:无els
2、eelse的的if if语句语句 if ( if ( 条件表达式条件表达式 ) ) if if块块; ; 例如:例如: int a = 28;if( a 0) a/=10;System.out. println(a=+a);思考差异性?J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-1 3-1 从键盘输入三个数,输出其中的最大者。从键盘输入三个数,输出其中的最大者。 import javax.swing.*;public class Max public static void main(String args ) int a, b, c, max; String s; s
3、= JOptionPane.showInputDialog(输入第输入第1个整型数:个整型数:); a = Integer.parseInt(s); s = JOptionPane.showInputDialog(输入第输入第2个整型数:个整型数:); b = Integer.parseInt(s); s = JOptionPane.showInputDialog(输入第输入第3个整型数:个整型数:); c = Integer.parseInt(s); J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-1(3-1(续)续) max=a;max=a; if (bmax) if (
4、bmax) max=b; max=b; if (cmax) if (cmax) max=c ; max=c ; JOptionPane.showMessageDialogJOptionPane.showMessageDialog(null,(null,最大值是最大值是: : +max); +max); 【思考思考】如果用如果用Math.maxMath.max方法来实现求方法来实现求3 3个个数的最大值,如何用一个表达式实现?数的最大值,如何用一个表达式实现?Math.max(a,Math.max(b,c)J a v a 语 言 程 序 设 计 ( 第 2 版 )格式格式2 2:带:带elsee
5、lse的的if if语句语句 if (if (条件表达式条件表达式) ) if if块块 else else else else块块 int n = 12;if(n % 2 != 0) System.out.println(n 是奇数);else System.out.println(n 是偶数);System.out.println(+n);J a v a 语 言 程 序 设 计 ( 第 2 版 )if if 语句的嵌套语句的嵌套 ( (求求a a、b b、c c三个数中最大数三个数中最大数 ) )if (ab) if (ab) if(ac) if(ac) System.out.printl
6、n( System.out.println(三个数中最大值是三个数中最大值是: +a); : +a); else else System.out.println( System.out.println(三个数中最大值是三个数中最大值是: +c); : +c); else /a=belse /acbc) System.out.println(System.out.println(三个数中最大值是三个数中最大值是: +b); : +b); else else System.out.println( System.out.println(三个数中最大值是三个数中最大值是: +c); : +c); J
7、 a v a 语 言 程 序 设 计 ( 第 2 版 )最近匹配原则最近匹配原则 if (x6) if (x3) if (x3) System.out.println(3x6); System.out.println(3x=6); System.out.println(x=6); else与最近的if匹配J a v a 语 言 程 序 设 计 ( 第 2 版 )让让elseelse语句匹配前一个语句匹配前一个if ifif (x6)if (x3) if (x3) System.out.println(3x6); System.out.println(3x=6); System.out.prin
8、tln(x=6); J a v a 语 言 程 序 设 计 ( 第 2 版 )思考运行结果?思考运行结果?public class test public class test public static void main(String args) public static void main(String args) int x=1,y=1,z=1; int x=1,y=1,z=1; if (-x=0 & y+=1|z+=1) if (-x=0 & y+=1|z+=1) System.out.println(x=+x+,y=+y+,z=+z); System.out.pr
9、intln(x=+x+,y=+y+,z=+z); x=0,y=2,z=1x=0,y=2,z=1J a v a 语 言 程 序 设 计 ( 第 2 版 )程序段对应的运行结果程序段对应的运行结果int i = 10int i = 10,j = 10;j = 10;boolean b = false;boolean b = false;if ( b = i = j)if ( b = i = j) System.out.println(True); System.out.println(True);elseelse System.out.println(False); System.out.prin
10、tln(False);变量b的值为赋值表达式的结果TrueJ a v a 语 言 程 序 设 计 ( 第 2 版 ) 阶梯阶梯else ifelse if 例例3-2,3-2,输入成绩,根据分数段输出信息输入成绩,根据分数段输出信息public class Ex3_2 public class Ex3_2 public static void main(String public static void main(String argsargs) ) intint s= s= Integer.parseIntInteger.parseInt( (argsargs0); 0); if (s60)
11、 if (s60) System.out.printlnSystem.out.println( (不及格不及格); ); else if (s70) else if (s70) System.out.printlnSystem.out.println( (及格及格); ); else if (s80) else if (s80) System.out.printlnSystem.out.println( (中中); ); else if (s90) else if (s90) System.out.printlnSystem.out.println( (良良); ); else else Sy
12、stem.out.printlnSystem.out.println(“ (“优优”); /90”); /90分以上分以上 J a v a 语 言 程 序 设 计 ( 第 2 版 )3.1.2 3.1.2 多分支语句多分支语句switch switch switch (expression) switch (expression) case value1 : statement1; break; /case value1 : statement1; break; /分支分支1 1 case value2 : statement2; break; /case value2 : statement
13、2; break; /分支分支2 2 . . case valueN : statementN; break; /case valueN : statementN; break; /分支分支n n default : default : 缺省语句块缺省语句块; /; /分支分支n+1,n+1, 其它其它 J a v a 语 言 程 序 设 计 ( 第 2 版 )图 3-3 switch语句执行流程J a v a 语 言 程 序 设 计 ( 第 2 版 )【几点说明几点说明】 表达式的值只能是表达式的值只能是整型、字符型、字符串整型、字符型、字符串,同时要与,同时要与casecase分支的判断值
14、的类型一致。分支的判断值的类型一致。casecase子句中的值子句中的值valueNvalueN必须是必须是常量常量,各个,各个casecase子句中的值不同。子句中的值不同。 计算表达式值后,首先与第一个计算表达式值后,首先与第一个casecase分支进行比较,若相同分支进行比较,若相同,执行第一个,执行第一个casecase分支的语句块;否则再检查第二个分之分支的语句块;否则再检查第二个分之, ,依次类推。如果没有情况匹配,就执行依次类推。如果没有情况匹配,就执行defaultdefault指定的指定的语句语句, ,但但defaultdefault子句本身是可选的。子句本身是可选的。 br
15、eakbreak语句语句用来在执行完一个用来在执行完一个casecase分支后,使程序跳出分支后,使程序跳出switchswitch语句,即终止语句,即终止switchswitch语句的执行,否则,找到一个匹语句的执行,否则,找到一个匹配的情况后面所有的语句都会被执行。配的情况后面所有的语句都会被执行。J a v a 语 言 程 序 设 计 ( 第 2 版 )import import javax.swingjavax.swing. .* *; ;public class Scorepublic class Score public static void main(String public
16、 static void main(String argsargs)intint s= s=Integer.parseIntInteger.parseInt( (JOptionPane.showInputDialogJOptionPane.showInputDialog( (输入学生输入学生分数:分数:););intint x = s/10 x = s/10 ; ; switch (x) switch (x) case 0: case 1: case 2: case 3: case 4:case 0: case 1: case 2: case 3: case 4:case 5: case 5:
17、 System.out.printlnSystem.out.println( (不及格不及格);break;);break; case 6: case 6: System.out.printlnSystem.out.println( (及格及格);break;);break;case 7: case 7: System.out.printlnSystem.out.println( (中中);break;);break;case 8: case 8: System.out.printlnSystem.out.println( (良良);break;);break;case 9: case 10:
18、 case 9: case 10: System.out.printlnSystem.out.println( (优优);); 例3-2也可采用switch语句实现分数段转化为整数值J a v a 语 言 程 序 设 计 ( 第 2 版 )3.2.1 while3.2.1 while语句语句 whilewhile语句的一般形式是:语句的一般形式是: 特点:先判断后执行特点:先判断后执行while (while (条件表达式条件表达式) ) 循环体循环体 符合条件则执行循环体J a v a 语 言 程 序 设 计 ( 第 2 版 )求:求:1+3+5+7+10011+3+5+7+1001clas
19、s Test class Test public static void main(String public static void main(String argsargs) intint k=1; / k=1; /累加项累加项 long s=0; / long s=0; /记录累加和记录累加和 while(k=1001) while(k=1001) s= s=s+ks+k; ; k=k+2; k=k+2; System.out.printlnSystem.out.println(s);(s); 0S1 4 9一直一直循环到循环到k=1003k=1003, ,出循环出循环思考:如果思考:如
20、果s s初值为初值为1 1(第(第1 1项),程序如何改动?项),程序如何改动?J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-3 3-3 在三位数中找出所有水仙花数,水仙花数的条件在三位数中找出所有水仙花数,水仙花数的条件是该数等于其各位数字的立方和。是该数等于其各位数字的立方和。 public class Narcissus public class Narcissus public static void main(String arge) public static void main(String arge) int i, j, k, int i, j, k, n=
21、100n=100, m=1; , m=1; while ( while (n1000n0) while(a0) m += m += a%10a%10; /; /累加计算各位数字累加计算各位数字 a =a = a/10 a/10; ; System.out.print(n+ System.out.print(n+的各位数字之和的各位数字之和=+m); =+m); J a v a 语 言 程 序 设 计 ( 第 2 版 )程序段对应的运行结果程序段对应的运行结果int m=8,n=5;int m=8,n=5;while (m2) while (m2) if (mn) m = m-n;else n
22、= n-m; System.out.println(m+, +n);System.out.println(m+, +n);过程:(0) 循环前 m=8,n=5(1)第1轮后,m=3,n=5(2)第2轮后,m=3,n=2(3)第3轮后,m=1,n=2结束循环1,2J a v a 语 言 程 序 设 计 ( 第 2 版 )程序段对应的运行结果程序段对应的运行结果int x=23659;int x=23659;String m=result=;String m=result=;while (x0) while (x0) m = m + x%10; m = m + x%10; x = x/10; x
23、= x/10; System.out.println(m);System.out.println(m);过程(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结束循环result=95632J a v a 语 言 程 序 设 计 ( 第 2 版 )3.2.2 3.2.2 do.while do.while语句语句 格式如下:格式如下: 特点:特点:“先执行,后判
24、断先执行,后判断” do do 循环体循环体 while ( while (条件表达式条件表达式); ); 先执行循环先执行循环1 1遍遍符合条件循环继续执行,符合条件循环继续执行,否则结束循环否则结束循环J a v a 语 言 程 序 设 计 ( 第 2 版 )3.2.3 for3.2.3 for语句语句 格式如下: for (for (控制变量设定控制变量设定初值初值; 循环进行循环进行条件条件;迭代迭代部分部分) ) 循环体循环体 迭代部分通常要更新循环控制变量的值J a v a 语 言 程 序 设 计 ( 第 2 版 )写出程序执行结果写出程序执行结果public class publ
25、ic class Test3Test3 public static void main(String public static void main(String argsargs) ) int f=1; for (int k=2;k0; a = a/10) m += a%10; /累加计算各位数字System.out.print(n+的各位数字之和=+m);说明:J a v a 语 言 程 序 设 计 ( 第 2 版 )(2 2)在初始化部分和迭代部分可以使用逗号语句,来进行多)在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。所谓逗号语句是用逗号分隔的语句序列。例如:个操作。所谓逗号
26、语句是用逗号分隔的语句序列。例如:for( i=0, j=10;for( i=0, j=10; ij; ij; i+, j-) i+, j-) System.out.printlnSystem.out.println(i+,(i+, +j);+j); 0,101,92,83,74,6J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-5 3-5 求求1+1/2+1/3+1/4+1+1/2+1/3+1/4+1/100+1/100的值的值 public class public class Ex3_5 Ex3_5 public static void main(String args
27、) public static void main(String args) double sum=1; double sum=1; for (int k= for (int k=2 2; k=100; k+); k=100; k+) sum = sum+ sum = sum+ 1.01.0/k; /k; System.out.println(1+1/2+1/3+1/4 System.out.println(1+1/2+1/3+1/4 + +1/100= +sum);+1/100= +sum); 用1/k可以吗?J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-6 3-6 求求
28、FibonacciFibonacci数列的前数列的前1010个数。个数。public class Ex3_6 public class Ex3_6 public static void main(String args) public static void main(String args) int n0 = 0, n1 = 1, n2; int n0 = 0, n1 = 1, n2; System.out.print(n0 + + n1 + ); System.out.print(n0 + + n1 + ); for(int i = 0; i 8; i+) for(int i = 0; i
29、 8; i+) n2 = n1 + n0; / n2 = n1 + n0; /计算计算 System.out.print(n2 + ” ); System.out.print(n2 + ” ); n0 = n1; / n0 = n1; /递推递推 n1 = n2; n1 = n2; 0 1 1 2 3 5 8 13 21 34 n0 n1 n2J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-7 3-7 利用随机函数产生利用随机函数产生1010道道2 2位数的加法测试。位数的加法测试。import javax.swing.import javax.swing.* *; ;pub
30、lic class public class Ex3_7 Ex3_7 public static void main(String args) public static void main(String args) int score = 0; int score = 0; for (int i=0;i10;i+) for (int i=0;i10;i+) int a = int a = 10 + (int)(9010 + (int)(90* *Math.random(); Math.random(); int b = 10 + (int)(90 int b = 10 + (int)(90*
31、 *Math.random();Math.random(); String s=JOptionPane.showInputDialog(a+b+=? ); String s=JOptionPane.showInputDialog(a+b+=? ); int ans = Integer.parseInt(s); int ans = Integer.parseInt(s); if (a + b = ans)if (a + b = ans) score = score + 10 ; / score = score + 10 ; /每道题每道题1010分分 JOptionPane.showMessag
32、eDialog(null, your score= +score); JOptionPane.showMessageDialog(null, your score= +score); J a v a 语 言 程 序 设 计 ( 第 2 版 )4.4. 循环嵌套循环嵌套 与条件语句的嵌套类似,循环也可以嵌套。三种循环语与条件语句的嵌套类似,循环也可以嵌套。三种循环语句可以自身嵌套,也可以相互嵌套。嵌套将循环分为内外句可以自身嵌套,也可以相互嵌套。嵌套将循环分为内外两层,两层,外层循环每循环一次,内循环要执行一圈外层循环每循环一次,内循环要执行一圈 。输出输出9x99x9的乘法表的乘法表1 1*
33、*1=1 11=1 1* *2=2 12=2 1* *3=3 3=3 2 2* *1=2 21=2 2* *2=4 22=4 2* *3=6 3=6 . . 9 9* *1=9 91=9 9* *2=18 92=18 9* *3=27 3=27 for (for (intint i i= =1;i1;i=9;i9;i+) +) for (for (intint j= j=1;j1;j=9;j9;j+)+) System.out.printSystem.out.print(i+(i+ * * +j+j+ = = +i+i* *j+j+ tt ); ); System.out.printlnSys
34、tem.out.println();(); J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-8 :3-8 :找找3-503-50之间的素数之间的素数 for (int n=3;n=50;n+) for (int n=3;n=50;n+) / /外循环外循环 boolean f=true; int k=2; boolean f=true; int k=2; while (f& k=(n-1)while (f& k=(n-1) / /内循环内循环, ,从从2 2(n-1)(n-1)去除去除n n if (n % k=0) if (n % k=0) f=false;
35、 / f=false; /发现有一个数能除尽发现有一个数能除尽n n就不是素数就不是素数 k+;k+; if (f) if (f) System.out.print(t+n); System.out.print(t+n); m+; / m+; /统计找到的素数个数统计找到的素数个数 if (m%5=0) if (m%5=0) System.out.println(); System.out.println(); J a v a 语 言 程 序 设 计 ( 第 2 版 )写出运行结果写出运行结果public class Test5public class Test5 public static
36、void main(String args) public static void main(String args) for(int i=1;i3;i+) for(int i=1;i3;i+) for (int j=0;j2;j+) for (int j=0;j2;j+) System.out.print(t+(i+j); System.out.print(t+(i+j); System.out.println(); System.out.println(); 1 2 2 3J a v a 语 言 程 序 设 计 ( 第 2 版 )1. break1. break语句语句 两种使用形式:两种
37、使用形式: break break 不带标号不带标号, ,从从breakbreak直接所处的循环体中跳转出来。直接所处的循环体中跳转出来。 break break 标号名标号名 带标号带标号, , 跳出标号所指的代码块,执行块后的下一条语句。跳出标号所指的代码块,执行块后的下一条语句。 3.3 跳转语句跳转语句反复做真累,该逃出哪层循环?J a v a 语 言 程 序 设 计 ( 第 2 版 )例例3-9 3-9 四位同学中一位做了好事,班主任问这四位是谁做的四位同学中一位做了好事,班主任问这四位是谁做的好事。好事。A A说说“不是我不是我”;B B说说“是是C C”。C C说说“是是D D”
38、;D D说说“C C胡说胡说”。已知有。已知有3 3人说真话人说真话. .public class Goodpublic class Good public static void main(String args) public static void main(String args) int man; /1-A,2-B,3-C,4-D int man; /1-A,2-B,3-C,4-D for (man=1;man=4;man+) for (man=1;man=4;man+) int a=(man!=1)?1:0;int a=(man!=1)?1:0; int b=(man=3)?1:0; int b=(man=3)?1:0; int c=(man=4)?1:0; int c=(man=4)?1:0; int d=(man!=4)?1:0;int d=(man!=4)?1:0; if (a+b+c+d=3) if (a+b+c+d=3) break; /manbreak; /man为当前值时为当前值时, ,有有3 3位所说是真位所说是真 满足条件退出循环每人说的每人说的话用程序话用程序逻辑表达逻辑表达J a v a 语 言 程 序 设 计 ( 第 2 版 ) switch (man) switch (man) case 1: case 1: System.out.print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 38278.1-2026全息防伪产品技术条件第1部分:全息防伪产品通用技术条件
- T/ZHHX 006-2025主要鲜切花流通规范
- T/HZFDS 001-2025体外诊断试剂出口质量管理能力评价规范
- T/CMAM M55-2025溢血症(免疫性血小板减少症)蒙医诊疗指南
- T/CARD 057-2024脑卒中重症康复服务指南
- T/CSCMA 0004-2023出口工程机械二手设备 评估服务规范
- 高校产学研合作基础培训
- 2025~2026学年广东省茂名市高州市北师大版六年级上册阶段练习(三)数学试卷【附答案】
- PHP后端面试题及详细答案(实战完整版)
- 引水隧洞衬砌及防渗堵漏施工方案
- 2026年保密培训考试题带答案(完整版)
- 6.4民生福祉持续增进 议题式教学课件(共24张)+内嵌视频 2026-2027学年统编版道德与法治9年级上册
- 中国邮政集团招聘考试历年真题
- 2026年一级造价师案例考试真题及答案
- 回复客户投诉的的质量整改函(6篇)
- 2026年春季云南云天化股份有限公司招聘(校园招聘)笔试历年参考题库附带答案详解
- 北京工业职业技术学院《网络营销》2025-2026学年期末试卷
- JJF(石化)078-2023激光甲烷遥测仪校准规范
- 焦点解决技术
- 研发中心组织架构和部门职能及各岗位职责说明书
- 防火排烟劳务分包协议
评论
0/150
提交评论