




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2-2、 分支程序设计2-2、1 实验目的(1) 掌握if语句的使用,掌握if语句的嵌套编程特点;(2) 掌握条件的表达技巧;(3)掌握switch语句的使用;(4) 了解从键盘获取数据的方法。2-2、2 知识要点2-2、2.1 if语句的两种形式 条件语句根据条件的真假控制程序的执行流程。编写程序时要注意与if与else的搭配。(1)无else分支if (条件表达式) statement1;(2)有else分支if (条件表达式)statement1; / if块else statement2; / else块注意:要执行的分支含有多个语句时一定要用大括号 2-2、2.2 if语句的嵌套(1) 最近匹配原则:else分支总是与最靠近它的if匹配。(2) 条件的表达技巧l 理解else分支的内含,进入else分支表示的隐含条件。l 注意逻辑与、或、非的运用2-2、2.3 switch语句多分支语句语句格式:switch (表达式) case 表达式1: 语句组1;break; case 表达式2:语句组2;break; default: 语句组;break; 功能:计算switch表达式的值,与后面case中哪个表达式匹配就从执行相应的语句组。 注意:(1) 表达式结果只能是整数(byte、short、int、long)或字符两种;(2) break的作用是退出switch语句;(3) default的含义是所有case不匹配情形。2-2、2.4 从键盘获取数据的办法(1)利用命令行参数获取数据。参数之间用空格分隔。(2)利用System.in.read()从键盘读一个字符。(3)从键盘读一行字符串的方法。 以下方法返回从键盘获取的输入串,该方法可作为通用方法安排在程序中使用。public static String inputLine() String x=null; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); try x=br.readLine(); catch(IOException e) return x;(4)数据输入程序中要含有IO异常处理代码(try.catch)。 (5)如何将数字串转换为整数和双精度数。Integer.parseInt(String)Double.parseDouble(String)2-2、3 样例程序样例1:从键盘输入x,根据以下情形求y的值:y=0; 当x0时y=2x+1; 当0x5时y=X2-1; 当x5时【参考程序1】import java.io.*;public class Fxy public static void main (String args) double x=0, y; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); try String s= br.readLine(); x=Double.parseDouble(s); catch(IOException e) if (x=0) y=0; else if (x5) y=2*x+1; else y=x*x-1; System.out.println(y=+y); 【参考程序2】public class Fxy public static void main (String args) double x,y;x=Double.parseDouble(args0); if (x0 & x=5) y=x*x-1; System.out.println(y=+y); 【说明】参考程序1的执行流程见图3-1,输入数据的办法是运行后从键盘输入,程序中使用了嵌套if语句,在最外层if语句已判x0,所以针对0x5的情况就只要判x5即可,只后的else也同理,这样可简化判断;参考程序2是从命令行输入数据,它的3个if语句各自独立,针对各种情况分别用if进行判断,这样无论x为何情形,均要执行所有的if语句,因此程序执行效率差。【编程技巧】(1) 记住两种获取一个输入整数的办法;(2) if语句的条件表达,逻辑运算符的使用,else分支隐含着什么情况。(3)if的嵌套与非嵌套的执行差别。样例2:输入一个学生的成绩,给出相应的等级(分别用if和switch语句实现)。85分及以上为A级;70分及以上为B级; 60分及以上为C级;60分以下为D级。 【参考程序1】public class Score public static void main(String args) int s=Integer.parseInt(args0); if(s60) System.out.println(D); else if(s70) System.out.println(C); else if(s85) System.out.println(B); else System.out.println(A); 【参考程序2】public class Score public static void main(String args)int s=Integer.parseInt(args0);int x=s/10; switch (x) case 0: case 1: case 2: case 3: case 4: case 5: System.out.println(D);break; case 6: System.out.println(C);break;case 7: case 8: if (s 85) System.out.println(B); break; case 9: case 10: System.out.println(A); 【说明】参考程序1是一种简单的实现方式,使用了阶梯if语句,流程见图3-2。参考程序2采用switch实现,但对于80分89分的情形还需要特别考虑,因为上了85分即为“A”,所以其中又安排了一个if语句。【编程技巧】(1) 阶梯if的嵌套关系;(2) case语句情况表示,如何将问题域的各种情形转化为整数值。2-2、4 上机练习 基本题1) 从键盘输入4个学生的成绩,找出最高分和最低分。import java.io.*;public class Score public static void main(String args) throws NumberFormatException, IOException float score=new float4; BufferedReader in=new BufferedReader(new InputStreamReader(System.in); for(int i=0;iscore.length;i+) System.out.println(请输入第+(i+1)+个成绩:); scorei=Float.parseFloat(in.readLine(); float min=32768; float max=0; for(int i=0;imax) max=scorei; if(scoreimin) min=scorei; System.out.println(最大值:+max+ 最小值:+min); 运行结果为:请输入第1个成绩:67请输入第2个成绩:78请输入第3个成绩:56请输入第4个成绩:89最大值:89.0 最小值:56.0【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。2) 输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。import java.io.*;public class score public static void main (String args) int x=0; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); try String s= br.readLine(); x=Integer.parseInt(s); catch(IOException e) if(x60) System.out.println(不及格); else if(x70) System.out.println(及格); else if(x80) System.out.println(中); else if(x0有两个实根;=0,有一个实根;0,无实数解。另外,求x的平方根可用Math.sqrt(x)方法。import java.util.Scanner;public class test public static void main(String args) Scanner s=new Scanner(System.in);System.out.println(请输入a:); Double a = s.nextDouble(); System.out.println(请输入b:); Double b = s.nextDouble(); System.out.println(请输入c:); Double c=s.nextDouble(); double d = b * b - 4 * a * c; double x,x1,x2; if(a=0) x=(-c)/b); System.out.println(x=+x); else if (d 0) System.out.println(no answer); else if(d = 0) x1 = x2 =(-b)/(2*a); System.out.println(x1=x2=+x1); else x1 =(-b)+Math.sqrt(d)/(2*a); x2 =(-b)- Math.sqrt(d)/(2*a); System.out.println(x1=+x1+x2=+x2); 运行结果为:请输入a:1请输入b:2请输入c:1x1=x2=-1.02) 输入某人的应纳税所得额,计算个人所得税。税率表如下: 级数全月应纳税所得额税率%速算扣除法(元)1不超过500元的502超过500元至2000元的部分10 253超过2000元至5000元的部分15 1254超过5000元至20000元的部分20 3755 超过20000元至40000元的部分2513756 超过40000元至60000元的部分 30 33757 超过60000元至80000元的部分3563758 超过80000元至100000元的部分40 103759 超过100000元的部分 45 15375 计算公式是:应纳个人所得税税额=应纳税所得额适用税率-速算扣除数 例:王某当月应纳税所得额6400元。则应纳个人所得税税额=640020%-375=905元。import java.io.*;public class Tax public static void main (String args) int x=0; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); try String s= br.readLine(); x=Integer.parseInt(s); catch(IOException e) if(x=500) System.out.println(tax=+(x*5/100); else if(x=2000) System.out.println(tax=+(x*10/100-25); else if(x=5000) System.out.println(tax=+(x*15/100-125); else if(x=20000) System.out.println(tax=+(x*20/100-375); else if(x=40000) System.out.println(tax=+(x*25/100-1375); else if(x=60000) System.out.println(tax=+(x*30/100-3375); else if(x=80000) System.out.println(tax=+(x*35/100-6375); else if(x4)? a%b:a/b ;System.out.println(result); A. 0 B. 1 C. 2 D. 52)以下程序的运行结果为: 1. public class Conditional 2. public static void main(String args ) 3. int x = 4;4. System.out.println( value is +(x 4) ? 99.99 : 9);5. 6. A. 输出:value is 99.99B. 输出: value is 9C. 输出: value is 9.0D. 在第4行出现编译错误3)以下代码段的输出结果为1. int x = 0, y = 4, z = 5;2. if (x 2) 3. if (y 5) 11. System.out.println(message three);12. 13. else 14. System.out.println( message four);15. A. message oneB. message twoC. message threeD. message four4) 以下程序的输出结果为:public class test public static void main(String args) int x=1,y=1,z=1; if (x-=1&y+=1|z+=1) System.out.println(x=+x+,y=+y+,z=+z); A x=0,y=2,z=1B x=1,y=2,z=1C x=0,y=1,z=1D x=0,y=2,z=25) 编译和运行以下代码结果为:1. public class EqualsTest2. public static void main(String args)3. byte A=(byte)4096;4. if(A=4096) System.out.println(Equal);5. else System.out.println(Not Equal);6. 7. A在第3行出现转换丢失精度的编译错误.B输出 Not Equal.C输出 Equal.6) 关于以下程序哪条叙述正确?1. int j = 2;2. switch ( j ) 3. case 2:4. System.out.println (value is two);5. case 2 + 1:6. System.out.println (value is three);7. break;8. default:9. System.out.println(value is + j);10. break;11. A. 第5行的表达式不合法;B. 变量j是可接受的,switch中表达式可以是byte, short, int,或long的任何类型;C. 输出为value is twoD. 输出是value is two 后跟value is threeE. 输出是value is two 后跟 value is 27)以下程序的编译运行结果为:1: public class Q102: 3: public static void main(String args)4: 5: int i = 10;6: int j = 10;7: boolean b = false;8: 9: if( b = i = j)10: System.out.println(True);11: else12: System.out.println(False);13: 14: A. 第9行出现编译错误;B. 第9行出现运行错误;C. 输出 TrueD. 输出 False8)以下程序的编译和运行结果为?class test static boolean check; pub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南永州市零陵区第二批公开引进急需紧缺专业人才(医疗岗9人)考前自测高频考点模拟试题及完整答案详解一套
- 2025湖南中医药大学第二附属医院招聘21人(第一批)模拟试卷及答案详解一套
- 航天科技知识考试题库及答案
- 模电考研考试题库及答案
- 2025年国电“学安全、反违章、防事故”学习考试活动题库(含答案)
- 2025年物流运输合伙合同
- 2025年广西壮族自治区省直机关公开遴选公务员笔试题及答案解析(A类)
- 海关检疫员考试题及答案
- 高三月考试卷数学及答案
- 魔法学院考试内容及答案
- 2025年防跌倒、坠床安全管理考核试题及答案
- 2025年河北石家庄交通投资发展集团有限责任公司公开招聘操作类工作人员336人考试参考题库及答案解析
- 幼儿园大班数学《小熊种玉米》课件
- 2025年疫苗上岗证考试题及答案
- 公交车广告承包合同5篇
- 航空科普课件
- 2025年秋新北师大版数学3年级上册全册同步教案
- 小学语文教师职称考试试题及答案
- 第5章 绩效评价(《绩效管理》第3版)
- 2025-2026学年人教版(2024)初中地理八年级上册教学计划及进度表
- 2025年上半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
评论
0/150
提交评论