资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
循环语句 for 循环 while 循环 do-while 循环 特殊的循环控制语句 递归 方法的声明,调用,重载,主要内容,程序有三种结构: 顺序结构 程序从上到下一行一行的执行代码,没有判断和中转。 选择结构 if-else switch 循环结构,2,循环结构,(1) 当型结构 当P条件成立时(T),反复执行A,直到P为“ 假 “时才停止循环.,有两种结构:当型和直到型,(2) 直到型,先执行A, 再判断P,若为T,再执行A,如此反复,直到P为F.,循环语句,循环语句功能 在循环条件满足的情况下,反复执行特定代码 循环语句的四个组成部分 初始化部分:对循环变量赋初值 循环条件部分:判断循环变量是否超出某个界限 循环体部分:要循环执行的具体逻辑. 迭代部分:修改循环变量的值 循环语句分类 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; 表达式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+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=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 .需要两层循环,外层循环控制第一个乘数,内层循环控制第二个乘数,while 循环语句,形式: while (boolean表达式) 语句块,执行过程: 先判断表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止,while语句(“当“型循环),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,注意事项, 语句中应有使表达式=false的语句。 否则会出现无限循环死循环。, while后面的语句一般为语句块, 即:加 ,练习: 用while循环计算1000以内的奇数的和 注意:避免死循环,do/while 循环语句,一种专门的“直到型“ 循环语句。,2. 执行过程: 先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环,3. 流程:,1. 形式: do 语句块while(表达式) ;,do/while 循环语句,语法格式 初始条件 do 循环体; 迭代 while( 循环条件判断); 应用举例 public class WhileLoop public static void main(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+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 TestBreak 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 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) continue; 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%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 亦可省略,但在循环体中须有语句修改循环变量;以使 表达式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+ ) 等价于: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,continue;)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的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,声明格式: 形式参数(形参):在方法声明时接受的参数类型,数量,顺序。 实际参数(实参):调用方法时实际传给方法的数据。 返回值类型:方法要返回的结果的数据类型。 若一个方法没有返回值,必须给出返回值类型void 返回值:方法在执行完毕后返还给调用者的数据。 return 语句终止方法的运行并指定要返回的数据。,修饰符1 修饰符2 返回值类型 方法名(形式参数列表) 程序代码; return 返回值; ,36,(普通)方法的声明-制定行动计划,Java语言中使用下述形式调用方法: 对象变量名.方法名(实参列表);/非静态方法的调用方式 静态方法名(实参列表);/静态方法的调用方式 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。(int ,double, float),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号