版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计技能教程,主编 彭德林 李德有 中国水利水电出版社 ,第4章 基本控制结构,任务一 :掌握Java分支结构,任务三 :实训四 分支及循环结构编程,任务二 :掌握Java循环结构,4.1 任务一 掌握Java分支结构,4.1.1 if语句 1. 简单的条件语句 语句的格式如下: if(表达式) 语句; ,图 4-1 简单的条件语句,说明:,(1) 放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false。 (2) 如果表达式的值为true,则执行语句;如果表达式的值为false,则什么也不执行。 (3) 花括号括起来的语句块可以只有一行语句,也可
2、以由多行代码构成。一个语句块通常被当成一个整体来执行。 如果语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体。,【例4-1】通过命令行输入一个人的年龄,判断其是否为未成年人。 import java.io.*; public class TestAge public static void main(String args) throws IOException InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedRead
3、er(in); int age; System.out.println(请输入一个年龄,回车); age=Integer.parseInt(bin.readLine(); if(age18) System.out.println(这是一个未成年人!); ,【例4-2】已知三个数,要求将它们按照由小到大的顺序输出。 public class NumberSort public static void main(String args) int a=5,b=7,c=3,t; if(ab) t=a; a=b; b=t; ,if(ac) t=a; a=c; c=t; if(bc) t=b; b=c;
4、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整除) import java.io.*
5、; public class TestYear public static void main(String args) throws IOException InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in);,int year; System.out.println(请输入一个年份,回车); year=Integer.parseInt(bin.readLine(); if(year%4=0 ,【例4-4】通过命令输入两个数,把它们由大到小输出。 im
6、port java.io.*; public class TestNum public static void main(String args) throws IOException InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in); float x,y; System.out.println(请输入第一个数); x=Float.parseFloat(bin.readLine();,System.out.println(请输入第二个数); y=Flo
7、at.parseFloat(bin.readLine(); if(xy) System.out.println(x+,+y); else System.out.println(y+,+x); ,3. if语句的嵌套 在if语句中又包含一个或多个if语句称为if语句的嵌套。 语句的格式如下: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式m) 语句m; else 语句n;,【例4-5】根据百分制分数判定成绩等级,标准如下: A:90100分 B:8089分 C:7079分 D:6069分 E:60分以下 public class TestGrade pu
8、blic static void main(String args) int score=89; char ch; if(score=90) ch=A;,else if(score=80) ch=B; else if(score=70) ch=C; else if(score=60) ch=D; else ch=E; System.out.println(等级+ch); ,Java提供了多分支选择语switch语句。使用switch可以测试多个不同的条件并做出相对的响应。 switch(表达式) case 常量1:语句序列1; break; case 常量2:语句序列2; break; cas
9、e 常量n:语句序列n; break; default:语句序列n+1; ,4.1.2 switch语句,(1)表达式的数据类型可以是byte、short、char和int类型,不允许是浮点数类型和long类型。break语句和default子句是可选项。 (2)switch语句先计算表达式的值,然后依次匹配case子句后的常量1、常量2常量n等值,如果遇到匹配的值即执行对应的语句序列,直到遇到break语句为止;如果case子句中没有break语句,则程序继续匹配剩余case子句后的值。 (3)如果没有一个常量值与表达式的值相等,则执行default子句中的语句序列;如果没有default子
10、句,switch语句不执行任何操作。,说明:,【例4-6】根据不同的运算符号(+、-、*、/),对两个数执行相应的运算并输出结果。 import java.io.*; public class TestSign public static void main(String args) throws IOException float a=10f,b=5f,c=0.0f; char sign; System.out.println(加法(+),减法(-),乘法(*),除法(/),请选择运算符); sign=(char)System.in.read(); switch(sign) ,case +:
11、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】根据用户输入17之间的一个整数,输出相对应星期的英文单词。 import java.io.*; public class TestWeek public static void main(String args) throws IOExc
12、eption InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in); short day; System.out.println(请输入17之间的一个整数);day=Short.parseShort(bin.readLine(); switch(day) ,case 1:System.out.println(Monday);break; case 2:System.out.println(Tuesday);break; case 3:System.out.
13、println(Wednesday);break; case 4:System.out.println(Thursday);break; case 5:System.out.println(Friday);break; case 6:System.out.println(Saturday);break; case 7:System.out.println(Sunday);break; default: System.out.println(请输入17之间的一个数!); ,4.2 任务二 掌握Java循环结构,循环结构是程序中一种重要的基本结构,是指在一定的条件下重复执行某段程序,被重复执行的这
14、段程序称为“循环体”。 Java还提供了break语句和continue语句,可以控制循环语句的执行情况。 1. break语句 2. continue语句 continue语句的功能和break语句有点类似,区别是continue语句只是终止本次循环,回到循环条件处,判断是否执行下一次循环。而break语句则是完全终止循环。可以理解为continue语句的作用是略过当次循环中剩下的语句,重新开始新的循环。,4.2.1 for语句 语句的格式如下: for(表达式1; 表达式2; 表达式3) 循环体; ,图 4-4 for语句流程图,说明: (1)表达式1一般是一个或多个(用逗号隔开)赋值语句
15、,它用来给循环控制变量赋初值;表达式2是一个布尔类型的表达式,它决定什么时候退出循环;表达式3一般用来修改循环变量,控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。,(2)for语句的执行过程:在循环刚开始时,先计算表达式1,在这个过程中,一般完成的是初始化循环变量或其它变量。根据表达式2的值来决定是否执行循环体。表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环体,并退出循环;若该值为真,将执行循环体。执行完一次循环体后,计算表达式3。每次执行循环体之后都要重新验证表达式2的值,直到表达式2的值为false时退出循环。 (3)循环体可以是一条简单语句,此时可以省略循环
16、体外的花括号。循环体也可以是一组语句块,此时不可以省略循环体外的花括号。,【例4-8】输出19之间的所有整数及其平方值。 public class TestNum1 public static void main(String args) for(int i=0,j=0;i=9;i+,j=i*i) System.out.println(i=+i); System.out.println(j=+j); ,【例4-9】计算1100之间的偶数和。 public class TestNum2 public static void main(String args) int n,s=0; for(n=0
17、;n=100;n=n+2) s=s+n; System.out.println(2+4+100=+s); ,4.2.2 dowhile语句 语句的格式如下: do 循环体; while(表达式);,图 4-5 do-while语句流程图,说明: (1)放在while之后的括号里的只能是一个布尔表达式。布尔表达式表示循环执行的条件。 (2)循环体可以是一条语句,也可以是复合的语句序列。如果只有单个语句需要重复,花括号可以省略。 (3)dowhile语句的执行过程是:先执行一次循环体再判断布尔表达式的值,当布尔表达式的值为true时重复执行循环体中的语句,每次执行循环体之后都要重新验证表达式的值,
18、直到表达式的值为false时退出循环。一定要有使布尔表达式的值取假的时候,否则会出现死循环。 (4)特点:先执行循环体,然后判断循环条件是否成立,dowhile语句总是执行它的循环体至少一次。,【例4-12】计算1100之间的整数和。 public class TestNum3 public static void main(String args) int n=1,s=0; do s=s+n; while(+n=100); System.out.println(1100之间的整数和为: +s); ,4.2.3 while语句 语句的格式如下: while(表达式) 循环体; ,图 4-6 w
19、hile语句流程图,说明: (1)放在while之后的括号里的只能是一个布尔表达式。布尔表达式表示循环执行的条件。 (2)循环体可以是一条语句,也可以是复合的语句序列。如果只有单个语句需要重复,花括号可以省略。 (3)while循环语句的执行流程:先判断while语句中的布尔表达式的值;如果是false,则不执行循环体,直接执行后面的程序;如果是true,则执行循环体语句,然后重新验证表达式的值,直到表达式的值为假时退出循环。 (4)while语句的特点是先判断表达式值为真后,再执行循环体。如果while循环一开始布尔表达式的值就是假的,那么循环体就根本不被执行。,【例4-14】编程输出100
20、400之间能同时被3和7整除的数。 public class TestNum5 public static void main(String args) int n=100; while(n=400) if(n%3=0 ,4.2.4 嵌套循环 如果在循环语句的循环体中又包含循环语句,就形成多重循环结构,称为嵌套循环。嵌套循环既可以是for循环嵌套while循环,也可以是while循环嵌套dowhile循环即各种类型的循环都可以作为外层循环,各种类型的循环也可以作为内层循环。 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束、且外层循环的循环体执行结束,则再次计算外层循环的循环条件,决定是否再次开始执行外层循环的循环体。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年咸阳市财金投资管理有限公司及子公司招聘(30人)笔试备考试题及答案详解
- 2026年河南体育学院招聘高层次人才笔试备考试题及答案详解
- 2026中国华电集团有限公司四川分公司校园招聘(第三批)笔试模拟试题及答案详解
- 民营企业与客户2026年售后协议
- 2026年长春中医药大学附属医院招聘(1号)(含专项招聘高校毕业生)笔试备考题库及答案详解
- 物流配送与物流园区投资建设合同
- 2026云南西双版纳州勐海县住房和城乡建设局招聘编外聘用人员1人笔试备考题库及答案详解
- 2026年山东蒜都发展投资有限公司权属企业招聘笔试备考试题及答案详解
- 2026扬州大数据集团下属企业职业经理人招聘1人笔试备考试题及答案详解
- 2026青海海东市互助县悦康残疾人康复中心招聘笔试备考试题及答案详解
- 2026年湖南长沙新奥燃气有限公司社会招聘5人考试参考题库及答案解析
- 2026年安全生产月知识竞赛试题(7套完整版 含答案)
- 2026年全国安全生产月主题培训
- 2025年江苏省中考道德与法治试题及答案解析
- 2025年全国统一高考数学试卷(全国一卷)含答案
- 大学生心理健康教育(江汉大学)智慧树知到答案章节测试2023年
- 食品添加剂的测定优秀课件
- 基因功能研究技术之基因敲除及基因编辑技术-课件
- 心血管急症的急救(进修)课件
- 水系锌离子电池市场分析报告-培训课件
- 示波器的原理和使用课件
评论
0/150
提交评论