版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、循环语句 for 循环 while 循环 do-while 循环 特殊的循环控制语句 递归 方法的声明,调用,重载,主要内容,程序有三种结构: 顺序结构 程序从上到下一行一行的执行代码,没有判断和中转。 选择结构 if-else switch 循环结构,2,循环结构,(1) 当型结构 当P条件成立时(T),反复执行A,直到P为 假 时才停止循环.,有两种结构:当型和直到型,(2) 直到型,先执行A, 再判断P,若为T,再执行A,如此反复,直到P为F.,循环语句,循环语句功能 在循环条件满足的情况下,反复执行特定代码 循环语句的四个组成部分 初始化部分:对循环变量赋初值 循环条件部分:判断循环变
2、量是否超出某个界限 循环体部分:要循环执行的具体逻辑. 迭代部分:修改循环变量的值 循环语句分类 for 循环 while 循环 do/while 循环,为什么要有循环?,1+2+3+4+5. int sum = 0; sum = sum + 1; sum = sum + 2; sum = sum + 3; sum = sum + 4; sum = sum + 5;,for 循环语句,1. 形式,首先计算表达式1,接着计算表达式2,若表达式2的值=true,则执行循环体,接着计算表达式3,再判断表达式2的值.依此重复下去,直到表达式2的值=false。,2.执行过程,for(表达式1; 表达式
3、2; 表达式3) 循环体,流程:,计算表达式1,求表达式2值,语句,计算表达式3,结束for语句,false,true,for 循环语句,语法格式 for (循环变量初始值设定; 循环条件判断; 改变循环变量的值) 循环体 应用举例:输出1+2+.+100的和 public class ForLoop public static void main(String args) int result = 0; for(int i=1; i=100; i+) result += i; System.out.println(result= + result); ,演示与练习,1:求1-5的和/积。1+
4、2+3+4+5,1*2*3*4*5 2:分别求1-100内奇数/偶数的和,并打印出来。 3:求1-100内能被3整除,不能被5整除的数字。 4:练习3中共有多少个。 5:练习3中的结果,每行打印5个。 6: 打印乘法表 1*1=1 2*1=22*2=4 3*1=33*2=63*3=9 4*1=44*2=84*3=124*4=16 .需要两层循环,外层循环控制第一个乘数,内层循环控制第二个乘数,while 循环语句,形式: while (boolean表达式) 语句块,执行过程: 先判断表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止,while语句(
5、当型循环),while 循环语句,语法格式 init_statement/初始化 while( test_exp)/循环条件 body_statement;/循环体 alter_statement;/迭代部分 ,语法格式 while( 条件表达式语句) 循环体语句; 应用举例,public class WhileLoop public static void main(String args) int result = 0; int i=10; while(i=100) result += i; i+; System.out.println(result= + result); ,13,注意事
6、项, 语句中应有使表达式=false的语句。 否则会出现无限循环死循环。, while后面的语句一般为语句块, 即:加 ,练习: 用while循环计算1000以内的奇数的和 注意:避免死循环,do/while 循环语句,一种专门的直到型 循环语句。,2. 执行过程: 先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环,3. 流程:,1. 形式: do 语句块while(表达式) ;,do/while 循环语句,语法格式 初始条件 do 循环体; 迭代 while( 循环条件判断); 应用举例 public class WhileLoop public static void m
7、ain(String args) int result = 0, i=1; do result += i; i+; while(i=100); System.out.println(result= + result); ,while语句与dowhile语句的区别: 当第一次执行时,若表达式=false时,则while语句与do while有所不同,do while 执行一次后面的语句,而while不执行。,打印输出0200之间能被7整除但不能被4整除的所有整数;要求每行显示6个数据; 计算10!(10的阶乘)结果; 数字求和游戏: 1:求如果指定基数base为2,次数count为5, 则求2+
8、22+222+2222+22222的值; 2: 3+33+333:基数的数值和相加的次数可以在控制台输入 3:循环运行上述游戏,每次玩完后,提示1:继续输新的基数,次数,重新开始游戏; 2:结束程序,19,演示Demo,特殊流程控制语句,break 语句 break语句用于终止某个语句块的执行 break; break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 label1: while() label2: for() label3:while() break label1; . ,特殊流程控制语句,break 语句用法举例 public class TestBre
9、ak public static void main(String args) for(int i = 0; i10; i+) if(i=3)break; System.out.println( i = + i); System.out.println(Game Over!); ,特殊流程控制语句,public class TestBreak public static void main(Stringargs) outer: for(int i = 0;i 5;i +) for(int j = 0;j 3;j +) System.out.println(j); if(j = 2) break
10、 outer; System.out.println(j != 2); /for System.out.println(test continue); /for . ,特殊流程控制语句,continue 语句 continue语句用于跳过某个循环语句块的一次执行 continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 continue语句用法举例1 public class ContinueTest public static void main(String args) for (int i = 0; i 100; i+) if (i%10=0) conti
11、nue; System.out.println(i); ,笔试面试时注意措辞,跳出/跳过 一次/某次 循环 -continue 跳出/结束 整个/全部 循环 -break,难点:素数,也叫质数. 是除了1和其本身,不能被其他正整数整除的正整数. 例如:2,3,5,7,11,13,17,19,23.,特殊流程控制语句,public class PrimeNumber public static void main(String args) int n = 0; outer: for(int i=101;i200;i+=2) /外层循环 for(int j=2; ji;j+) /内层循环 if(i
12、%j=0) continue outer; /能不能使用 break ,为什么? System.out.print( + i); n+; if(n6 ) continue; System.out.println(); /输出六个数据后换行 n = 0; ,continue举例2 (输出101-200之间的所有素数), 表达式2一般不可省略,否则为无限循环,相当于: i=1; while (true) sum=sum+i; i+; ,例: for (i=1; ; i+) sum=sum+i;,相当于条件永真、永不为false,若用while表示,for语句的几种特例, 表达式3 亦可省略,但在循
13、环体中须有语句修改循环变量;以使 表达式2 在某一时刻为false而正常结束循环。,例: for (sum=0,i=1 ;i=100; ) sum=sum+i; i+; , 若同时省略表达式1,表达式3,则相当于while(表达式2)语句。,相当于 while (i=100) sum+=i; i+; ,例: for ( ; i=100; ) sum+=i; i+;, 三个表达式均省略 即for(;)语句,此时相当于while(true)语句.,表达式1、表达式3可以是逗号表达式,以使循环变量值在修改时可以对其它变量赋值。,例如:for (int sum=0, i=1; i=100; i+, i
14、+ ) 等价于:int sum=0; for (int i=1; i=100; i=i+2),几种循环的比较,1. 对于同一问题, 三种循环可相互替代。,2. for循环功能强于while, dowhile.但若不是明显地给出循环变量初终值(或修改条件),则可以用while 或do while.以增强程序的结构化和可读性。,3. 要防止无限循环死循环。,练习,计算整数a加到整数b的总和,其中a不一定比b小. ab ab a=b,练习,求出1000以内 能被7整除,不能被6整除,且十位数不是5,个位数不大于2, 或者能被50以内最大的三个素数的和整除的数中 最大的5个.(可能用到break,co
15、ntinue;)PrimeNumber3 从1到100输出数字,中间用逗号分隔,10个换一次行,如果遇到个位是3或整个数是3的倍数不输出.例如: 1,2,4,5,7,8,10,11,14,16, 17,19,20,22,25,26,28,29,31,32,作业,H0103homework,为什么需要声明方法,DRY原则,把能被复用的逻辑抽取出来 实现相对独立的逻辑 实现比较复杂的逻辑 可以对具体实现进行隐藏/封装,Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,声明格式: 形式参数(形参):在方法声明时接受的参数类型,数量,顺序。 实际参数(实参):调用方法时实际传给方法
16、的数据。 返回值类型:方法要返回的结果的数据类型。 若一个方法没有返回值,必须给出返回值类型void 返回值:方法在执行完毕后返还给调用者的数据。 return 语句终止方法的运行并指定要返回的数据。,修饰符1 修饰符2 返回值类型 方法名(形式参数列表) 程序代码; return 返回值; ,36,(普通)方法的声明-制定行动计划,Java语言中使用下述形式调用方法: 对象变量名.方法名(实参列表);/非静态方法的调用方式 静态方法名(实参列表);/静态方法的调用方式 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。(int ,double, float),37,(普通)方法的
17、调用-实施行动计划,方法调用Demo,定义static方法与非静态方法,用于求2个int类型的数值的和, 自己写2个求商的方法(一个static的,一个非static的),在main方法中调用,并输出返回结果. 求1n的和(一个static的,一个非static的). 闰年 A:能被4整除,并且不能被100整除 B:或者能被400整除。 求阶乘5!=5*.*1(自己练习) 求最大值 a,b ab?a:b 在方法中调用方法,(普通)方法重载overload-(实现相似功能),在同一个类中可以定义多个同名方法-方法重载 public class PrintStream . public void
18、println(int i) /重载了10次 public void println(float f) public void println(String s) . 重载方法的参数列表必须不同 重载方法的返回值类型,权限,其他修饰符可以相同,也可以不同,递归,问题:求给定整数的阶乘,例如5! = 5*4*3*2*1,如何实现? 使用循环语句 使用递归 public int method1(int n) if(n = 1) return 1; else return n*method1(n-1); ,递归的基本思想和要素,递归的基本思想是以此类推 递归方法解决问题的两个步骤: 求得范围缩小的同性质问题的结果 利用这个已得到的结果和几个简单的操作求得问题的最后解答 当同性质的问题被简化得足够简单时,将可直接获得问题的答案,而不必再调用自身,练习:,用递归解决1+2+3+.+100的求和问题. int sum(int a) /递
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 静电成像显影材料墨粉(色调剂)制造工安全宣传模拟考核试卷含答案
- 土方机械维修工诚信道德考核试卷含答案
- 日用五金制品制作工岗前技术落地考核试卷含答案
- 颜料生产工岗前安全管理考核试卷含答案
- 民宿管家岗中素质考核试卷含答案
- 硫酸生产工安全宣传模拟考核试卷含答案
- 贵金属首饰机制工技能掌握能力考核试卷含答案
- 拖拉机燃油喷射系统装试工岗位职业防护考核试卷含答案
- 氯化炉工安全教育测试考核试卷含答案
- 光伏聚光组件制造工岗前生产安全水平考核试卷含答案
- 2026年浙江经贸职业技术学院高职单招笔试英语试题库含答案解析3套试卷
- JL树木伐移项目监理规划
- 节能技术在化工中创新课题申报书
- 初中数学九年级上册《利用相似三角形原理测量高度》跨学科项目式教学设计
- 《中华人民共和国生态环境法典》应知应会测试题100道
- 2025年山东公务员考试申论试题及答案(B卷)
- 人教版数学一年级上册 10的认识 课件
- 船台施工方案
- 2026年非小细胞肺癌诊疗指南
- 千牛平台服务条款协议合同
- 医疗器械公司介绍
评论
0/150
提交评论