版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4基本控制结构任务一掌握Java分支结构任务二掌握Java循环结构项目实战一分支结构编程项目实战二循环结构编程4.1任务一掌握Java分支结构
4.1.1if语句1.简单的条件语句语句的格式如下:if(表达式){
语句;}图4-1简单的条件语句说明:(1)放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false。(2)如果表达式的值为true,则执行语句;如果表达式的值为false,则什么也不执行。(3)花括号括起来的语句块可以只有一行语句,也可以由多行代码构成。一个语句块通常被当成一个整体来执行。如果语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体。【例4-1】通过命令行输入一个人的年龄,判断其是否为未成年人。importjava.io.*;publicclassTestAge{ publicstaticvoidmain(String[]args)throwsIOException
{
InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in);
intage;System.out.println("请输入一个年龄,回车");
age=Integer.parseInt(bin.readLine());
if(age<18)
System.out.println("这是一个未成年人!");
}
}【例4-2】已知三个数,要求将它们按照由小到大的顺序输出。publicclassNumberSort{publicstaticvoidmain(String[]args){inta=5,b=7,c=3,t;
if(a>b)
{t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;}
System.out.println("a="+a+",b="+b+",c="+c);
}
2.带else的条件语句语句的格式如下:if(表达式){
语句1;}else{语句2;}图4-2带else的条件语句说明:(1)放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false。(2)如果if表达式的值为true,则执行语句1;如果表达式的值为false,则执行语句2。【例4-3】判断一个年份是否为闰年,是则显示,否则提示某年不是闰年。(闰年的判断规则:如果某年能被4整除且不能被100整除;或者某年能被400整除)importjava.io.*;publicclassTestYear{ publicstaticvoidmain(String[]args)throwsIOException
{
InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in);intyear;System.out.println("请输入一个年份,回车");year=Integer.parseInt(bin.readLine());
if(year%4==0&&(year%100!=0)||(year%400==0))
System.out.println(year+"是闰年!");elseSystem.out.println(year+"不是闰年!");}}【例4-4】通过命令输入两个数,把它们由大到小输出。importjava.io.*;publicclassTestNum{publicstaticvoidmain(String[]args)throwsIOException
{InputStreamReaderin=newInputStreamReader(System.in);BufferedReaderbin=newBufferedReader(in);
floatx,y;
System.out.println("请输入第一个数");x=Float.parseFloat(bin.readLine());System.out.println("请输入第二个数");y=Float.parseFloat(bin.readLine());
if(x>y)
System.out.println(x+","+y);elseSystem.out.println(y+","+x);
}
}3.if语句的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套。语句的格式如下:if(表达式1){ 语句1;}elseif(表达式2){ 语句2;}…elseif(表达式m){ 语句m;}else{ 语句n;}【例4-5】根据百分制分数判定成绩等级,标准如下:A:90~100分B:80~89分C:70~79分D:60~69分E:60分以下publicclassTestGrade{publicstaticvoidmain(String[]args){intscore=89;charch;if(score>=90)ch='A';
elseif(score>=80)ch='B';elseif(score>=70)ch='C';elseif(score>=60)ch='D'; elsech='E';System.out.println("等级"+ch);}}
Java提供了多分支选择语——switch语句。使用switch可以测试多个不同的条件并做出相对的响应。switch(表达式){case常量1:语句序列1; [break;]case常量2:语句序列2; [break;]…case常量n:语句序列n; [break;][default:语句序列n+1;]}4.1.2switch语句说明:(1)表达式的数据类型可以是byte、short、char和int类型,不允许是浮点数类型和long类型。break语句和default子句是可选项。(2)switch语句先计算表达式的值,然后依次匹配case子句后的常量1、常量2……常量n等值,如果遇到匹配的值即执行对应的语句序列,直到遇到break语句为止;如果case子句中没有break语句,则程序继续匹配剩余case子句后的值。(3)如果没有一个常量值与表达式的值相等,则执行default子句中的语句序列;如果没有default子句,switch语句不执行任何操作。【例4-6】根据不同的运算符号(+、-、*、/),对两个数执行相应的运算并输出结果。importjava.io.*;publicclassTestSign{publicstaticvoidmain(String[]args)throwsIOException{floata=10f,b=5f,c=0.0f;charsign;System.out.println("加法(+),减法(-),乘法(*),除法(/),请选择运算符");sign=(char)System.in.read(); switch(sign) {case'+':c=a+b;break; case'-':c=a-b;break; case'*':c=a*b;break; case'/':c=a/b;break; default:{ System.out.println("输入符号错误!"); c=-1.0f; } } if(c!=-1.0f) System.out.println("a="+a+"b="+b+"c="+c);}}【例4-7】根据用户输入1~7之间的一个整数,输出相对应星期的英文单词。importjava.io.*;publicclassTestWeek{publicstaticvoidmain(String[]args)throwsIOException{ InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in); shortday;System.out.println("请输入1~7之间的一个整数");
day=Short.parseShort(bin.readLine()); switch(day) {case1:System.out.println("Monday");break; case2:System.out.println("Tuesday");break;case3:System.out.println("Wednesday");break;case4:System.out.println("Thursday");break;case5:System.out.println("Friday");break;case6:System.out.println("Saturday");break;case7:System.out.println("Sunday");break; default:System.out.println("请输入1~7之间的一个数!"); }}}4.2任务二掌握Java循环结构
循环结构是程序中一种重要的基本结构,是指在一定的条件下重复执行某段程序,被重复执行的这段程序称为“循环体”。Java还提供了break语句和continue语句,可以控制循环语句的执行情况。1.break语句2.continue语句continue语句的功能和break语句有点类似,区别是continue语句只是终止本次循环,回到循环条件处,判断是否执行下一次循环。而break语句则是完全终止循环。可以理解为continue语句的作用是略过当次循环中剩下的语句,重新开始新的循环。
4.2.1for语句语句的格式如下:for(表达式1;表达式2;表达式3){ 循环体;}图4-4for语句流程图说明:(1)表达式1一般是一个或多个(用逗号隔开)赋值语句,它用来给循环控制变量赋初值;表达式2是一个布尔类型的表达式,它决定什么时候退出循环;表达式3一般用来修改循环变量,控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。(2)for语句的执行过程:在循环刚开始时,先计算表达式1,在这个过程中,一般完成的是初始化循环变量或其它变量。根据表达式2的值来决定是否执行循环体。表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环体,并退出循环;若该值为真,将执行循环体。执行完一次循环体后,计算表达式3。每次执行循环体之后都要重新验证表达式2的值,直到表达式2的值为false时退出循环。(3)循环体可以是一条简单语句,此时可以省略循环体外的花括号。循环体也可以是一组语句块,此时不可以省略循环体外的花括号。【例4-8】输出1~9之间的所有整数及其平方值。publicclassTestNum1{publicstaticvoidmain(String[]args){ for(inti=0,j=0;i<=9;i++,j=i*i) { System.out.println("i="+i);System.out.println("j="+j);}}}【例4-9】计算1~100之间的偶数和。publicclassTestNum2{publicstaticvoidmain(String[]args){intn,s=0; for(n=0;n<=100;n=n+2) s=s+n; System.out.println("2+4+…+100="+s);}}4.2.2do—while语句语句的格式如下:do{ 循环体;}while(表达式);图4-5do-while语句流程图说明:(1)放在while之后的括号里的只能是一个布尔表达式。布尔表达式表示循环执行的条件。(2)循环体可以是一条语句,也可以是复合的语句序列。如果只有单个语句需要重复,花括号可以省略。(3)do—while语句的执行过程是:先执行一次循环体再判断布尔表达式的值,当布尔表达式的值为true时重复执行循环体中的语句,每次执行循环体之后都要重新验证表达式的值,直到表达式的值为false时退出循环。一定要有使布尔表达式的值取假的时候,否则会出现死循环。(4)特点:先执行循环体,然后判断循环条件是否成立,do—while语句总是执行它的循环体至少一次。【例4-12】计算1~100之间的整数和。publicclassTestNum3{publicstaticvoidmain(Stringargs[]){intn=1,s=0;do{s=s+n;}while(++n<=100); System.out.println("1~100之间的整数和为:"+s);}
}4.2.3while语句语句的格式如下:while(表达式){
循环体;}图4-6while语句流程图说明:(1)放在while之后的括号里的只能是一个布尔表达式。布尔表达式表示循环执行的条件。(2)循环体可以是一条语句,也可以是复合的语句序列。如果只有单个语句需要重复,花括号可以省略。(3)while循环语句的执行流程:先判断while语句中的布尔表达式的值;如果是false,则不执行循环体,直接执行后面的程序;如果是true,则执行循环体语句,然后重新验证表达式的值,直到表达式的值为假时退出循环。(4)while语句的特点是先判断表达式值为真后,再执行循环体。如果while循环一开始布尔表达式的值就是假的,那么循环体就根本不被执行。【例4-14】编程输出100~400之间能同时被3和7整除的数。publicclassTestNum5{publicstaticvoidmain(Stringargs[]){intn=100;while(n<=400){if(n%3==0&&(n%7==0))System.out.print(n+"");n++;}}}4.2.4嵌套循环如果在循环语句的循环体中又包含循环语句,就形成多重循环结构,称为嵌套循环。嵌套循环既可以是for循环嵌套while循环,也可以是while循环嵌套do—while循环……即各种类型的循环都可以作为外层循环,各种类型的循环也可以作为内层循环。当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行——只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束、且外层循环的循环体执行结束,则再次计算外层循环的循环条件,决定是否再次开始执行外层循环的循环体。根据上面分析,假设外层循环的循环次数为i次,内层循环的循环次数为j次,那么内层循环的循环体实际上需要执行i*j次。嵌套循环不仅可以是两层嵌套,还可以是三层嵌套,四层嵌套……不论循环如何嵌套,我们都可以把内层循环当成外层循环的循环体来对待,区别只是这个循环体里包含了需要反复执行的代码。循环嵌套时,要求内循环完全包含在外循环之内,不允许出现相互交叉【例4-17】利用双重循环,输出九九乘法表:publicclassTable{publicstaticvoidmain(Stringargs[]){intm,n;for(m=1;m<=9;m++){for(n=1;n<=9;n++) System.out.print(m+"*"+n+"="+(m*n)+"\t");System.out.println();}}}4.3项目实战一分支结构编程1.实战内容利用if语句编写程序根据给定的x值计算分段函数y的值。 -x (x≤0) y=4x+8 (0<x≤30) x-10 (x>30)2.实战目的掌握分支结构编程方法。3.实战过程由于y是关于x的一个分段函数,所以要在main()方法中声明两个float类型的变量,分别表示变量x与y。变量x应设计成可以由用户从键盘输入;变量y根据x的取值,计算不同算式的值,因为要判断变量x的3种取值区间,本程序采用带嵌套的if语句来完成多个条件的判定。程序编写如下:importjava.io.*;publicclassTestFunction{ publicstaticvoidmain(String[]args)throwsIOException{ InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in); floatx,y;System.out.println("请输入x的值"); x=Integer.parseInt(bin.readLine()); if(x<=0)y=-x;elseif(x>0&&x<=30)y=4*x+8;elseif(x>30) y=x-10;System.out.println("x="+x); System.out.println("y="+y);}}4.4项目实战二循环结构编程1.实战内容利用for语句,编程输出空心菱形,如下所示:************2.实战目的熟悉循环结构编程方法。3.实战过程把空心菱形分成上下两部分分别输出,每部分分为多行需要使用循环结构,每行的星号和空格都需要使用需要循环结构,所以本程序需要使用两次二重循环。声明两个int类型变量i、j,分别用来控制外循环和内循环的循环次数。程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年手术室医疗用具项目可行性研究报告
- 住宅装修合同解约原因分析
- 无人驾驶股权投资居间合同
- 中小学装修施工合同
- 建筑工程居间乡村振兴
- 湖北医药学院药护学院《交通运输企业管理》2023-2024学年第一学期期末试卷
- 2025年心理咨询师保密责任合同3篇
- 2025年度股权转让合同中的股东权益和义务3篇
- 2025年度鲜羊奶销售渠道拓展合作合同范本3篇
- 玉溪2024年云南玉溪澄江市应急管理局招聘政府专职消防员招聘4人笔试历年参考题库附带答案详解
- 精神病医院财务后勤总务管理制度
- 停车场施工施工组织设计方案
- GB/T 37238-2018篡改(污损)文件鉴定技术规范
- 普通高中地理课程标准简介(湘教版)
- 河道治理工程监理通知单、回复单范本
- 超分子化学简介课件
- 高二下学期英语阅读提升练习(一)
- 易制爆化学品合法用途说明
- 【PPT】压力性损伤预防敷料选择和剪裁技巧
- 大气喜庆迎新元旦晚会PPT背景
- DB13(J)∕T 242-2019 钢丝网架复合保温板应用技术规程
评论
0/150
提交评论