《Java程序逻辑基础.ppt》由会员分享,可在线阅读,更多相关《Java程序逻辑基础.ppt(168页珍藏版)》请在三一办公上搜索。
1、第一部分,Java程序逻辑复习,什么是程序,程序一词来自生活,通常指完成某些事务的一种既定方式和过程在日常生活中,可以将程序看成对一系列动作的执行过程的描述,银行,1、带上存折/银行卡去银行,3、将存折或储蓄卡递给银行职员并告知取款数额,2、取号排队,5、银行职员办理取款事宜,生活中的程序,6、拿到钱并离开银行,4、输入密码,计算机中的程序,什么是指令?,1、做口述笔记2、键入信函的内容3、发送传真,(口述);(信函);(传真);,指令被逐条执行,程序员,老板,秘书,程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合,要执行的一组指令,程序,为什么学习Java,Java是
2、Sun Microsystems于1995年推出的高级编程语言Java 领域的JavaSE、JavaEE技术已发展成为同C#和.NET平分天下的应用软件开发平台和技术,PK.,PK.,Java可以做什么,开发桌面应用程序 银行软件、商场结算软件开发面向Internet的应用程序 网上数码商城、阿里巴巴、易趣网,Java技术平台简介,JavaSE:Java Platform,Standard Edition,JavaEE:Java Platform,Enterprise Edition,操作系统(包含运行环境),Java EE,Java SE,开发Java程序,三步走,1、编写源程序,2、编译源
3、程序,3、运行,public class HelloWorld public static void main(String args)这里填写代码!.,Java程序框架,外层框架,Java入口程序框架,填写代码,用Eclipse开发Java程序的步骤,使用Eclipse编写Java程序步骤:1、创建一个Java项目2、手动创建Java源程序3、编译Java源程序4、运行程序,第一个Java程序,public class HelloWorld public static void main(String args)(“你好!世界!);,分析程序,public class HelloWorld
4、public static void main(String args)System.out.println(“你好!!世界!);,关键字高亮显示,类名与文件名完全一样,main方法是Java程序执行的入口点,和一一对应,缺一不可,main方法四要素必不可少,从控制台输出信息,小结1,1、从控制台打印输出你的姓名和年龄2、从控制台打印输出“张三 18”,(张三);System.out.println(18);,(张三n);System.out.print(18);,println:输出信息并执行换行,print:输出信息,但不执行换行n:换行符,(张三t18);,t:制表位,参考代码,参考代码
5、,Java程序的注释2-1,/*HelloAccp.java*2012-9-3*第一个Java程序*/public class HelloWorld public static void main(String args)(“你好!世界!);,符号/*/指示中间的语句是该程序中的注释多行注释以/*开始,以*/结束,Java程序的注释2-2,public class HelloWorld public static void main(String args)/输出消息到控制台(“你好!世界!);,单行注释以/开始,以行末结束,电脑使用内存来记忆计算时所使用的数据内存如何存储数据?内存像旅馆数据
6、各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间,1、开房间(单人间、双人间、总统套间)2、入住,回顾内存如何存放数据,1000*(1+5%),1000,1050,变量:一个数据存储空间的表示,对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?,98.76,不同数据存入具有不同内存地址的空间,相互独立,变量,在银行存1000元钱,银行一年的利息5%,那一年之后钱变成了多少?,内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元,房间,房间名字,房间类型,入住的客人,变量,变量名,变量类型,变量值,为什么需要变量,对应,变
7、量应用,1、在内存中存储本金1000元 2、显示内存中存储的数据的值,public class HelloAccp1 public static void main(String args)int money=1000;/存数据,数据类型,变量名,内存空间存的数值,System.out.println(money);/使用数据,变量的声明和赋值,使用变量的步骤:第一步:声明一个变量第二步:赋值第三步:使用变量,数据类型 变量名=数值;,根据类型开辟空间,将数据存入空间,取出数据使用,数据类型 变量名;变量名=数值;,int money=1000;,int money;money=1000;,数
8、据属于不同类别,非洲,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,陈扬,char,非数值,数值,整型,int,double,非整型,String,Java常用数据类型,数据类型,数据类型说明,数据类型的使用,输出Java课考试最高分:98.5输出最高分学员姓名:张三输出最高分学员性别:男,public class HelloWorld public static void main(String args)double score=98.5;String name=张三;char sex=男
9、;(本次考试成绩最高分:+score);/输出其他,单引号,双引号,完整代码演示,连接输出信息,1、字母2、下划线_3、$符号,首字母,任意多的:1、数字2、字母3、下划线_4、$符号,其余部分,变量名,Java语言中,变量命名要符合一定规则money,score,name,sex,变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore,变量命名规则2-1,变量命名规则2-2,检查下面这些是否是合法的变量名,principal,cost_price,marks_3,$lastname,city,123rate,discount%,zi
10、p code,City,int,public class HelloWorld public static void main(String args)String title;(title);,String title;/声明变量titletitle=Java;/赋值,String title=Java;/声明变量title并赋值,1,2,先声明变量并赋值,然后才能使用,常见错误1,代码错误,正确方案,变量名不能以%开始,常见错误2,public class HelloWorld public static void main(String args)int%hour=18;System.o
11、ut.println(%hour);,代码错误,public class HelloWorld public static void main(String args)String name=张三;String name=李四;,声明两个同名变量导致编译错误,String name=张三;String Name=李四;,Java程序区分大小写,常见错误3,正确方案,小结2,使用变量存储以下MP3信息,并打印输出品牌(brand):爱国者F928重量(weight):12.4电池类型(type):内置锂电池价格(price):499,参考代码,定义变量有哪两种方式?,某班的A学员Java成绩是8
12、0分,B学员与A学员成绩相同,输出B学员成绩,int aScore=80;int bScore;aScore=bScore;System.out.println(bScore);,bScore=aScore;/将右边的值给左边的变量,赋值运算符,完整代码演示,aScore,bScore,80,80,副本,赋值运算符2-1,代码错误,变量名 表达式;,赋值运算符2-2,=,Z=(X*2)+(5 Y),表达式,表达式,表达式,赋值运算符,表达式举例,算术运算符3-1,基本的算术运算 某学员3门课成绩如右表所示,编程实现:1、Java课和SQL课的分数之差 2、3门课的平均分,public clas
13、s HelloWorld public static void main(String args)int stb=89;/STB分数 int java=90;/Java分数 int sql=60;/SQL分数 int diffen;/分数之差 double avg;/平均分/省略输出成绩单代码 diffen=java-sql;/计算java 课和sql课的成绩差 System.out.println(Java和SQL的成绩差:+diffen);avg=(stb+java+sql)/3;/计算平均分 System.out.println(3门课的平均分是:+avg);,声明变量,完整代码演示,算
14、术运算符3-2,int num1=5;int num2=2;int a=num1%num2;int b=num1/num2;System.out.println(num1+%+num2+=+a);System.out.println(num1+/+num2+=+b);num1+;num2-;System.out.println(num1=+num1);System.out.println(num2=+num2);,5%2=15/2=2,下面代码片断的输出结果是什么?,输出,%:求商,/:求余数,等价于:num1=num1+1;,等价于:num2=num2-1;,num1=6num2=1,输出,
15、完整代码演示,算术运算符3-3,1、根据天数(46)计算周数和剩余的天数,2、已知圆的半径radius=1.5,求其面积,参考代码,参考代码,小结3,自动类型转换,某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?,double firstAvg=81.29;/第一次平均分 double secondAvg;/第二次平均分 int rise=2;secondAvg=firstAvg+rise;System.out.println(第二次平均分是:+secondAvg);,完整代码演示,在某种条件下,系统自动完成类型转换两种类型兼容例如:int 和 double
16、 兼容目标类型大于源类型例如:double 型 大于 int 型 对于表达式如果一个操作数为double型,则整个表达式可提升为double型,类型提升规则,int age=19;char sex=女;char result=age+sex;,下面语句正确吗?,int a=10;int b=10.2;double c=10;c=a;int d=c;,int 不可以自动转换成char,double不可以自动转化成int,常见错误,int before=20;/apple笔记本市场份额double rise=9.8;/增长的份额int now=before+rise;/现在的份额,int now=
17、before+(int)rise;,去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?,编译出错:不能完成自动类型转换,(类型名)表达式,强制类型转换,int b=(int)10.2;double a=10;int c=(int)a;,强制类型转换,更改为,强制类型转换,完整代码演示,实现一个数字加密器,加密规则是:加密结果=(整数*10+5)/2+3.14159 加密结果仍为一整数,参考代码,小结4,用什么数据类型能表示一件商品是真货还是假货一个条件成立还是不成立,boolean(布尔)类型boolean类型的值:真:true假:false,boolea
18、n类型只有这两个值,?,为什么需要boolean类型,1、用boolean类型描述:学员张三的考试成绩是否比学员李四(80分)高,如何使用boolean类型,int liSi=80;/学员李四成绩boolean isBig;/声明一个boolean类型的变量 Scanner input=new Scanner(System.in);(输入学员张三成绩:);/提示要输入学员张三的成绩int zhangSan=input.nextInt();/输入张三的成绩 isBig=zhangSan liSi;/将比较结果保存在boolean变量中(张三成绩比李四高吗?+isBig);/输出比较结果,存储比较
19、结果,条件表达式,从控制台接收一个整数,完整代码演示,比较高低、大小、长短张三的考试成绩是否比李四高大象是否比乌龟更长寿篮球跟地球一样大吗,如何比较?,使用关系运算符可以比较高低、大小、长短,?,为什么使用关系运算符,什么是关系运算符,常用的关系运算符有哪些:,=,=,大象的寿命 李四的成绩 假令狐冲每次考试成绩=90分 真篮球的大小=地球的大小 假,由此看出,关系运算符的作用:用来做比较运算比较后结果:boolean类型,2、如果令狐冲的Java考试成绩大于90分,师父就奖励他一本武功秘笈,为什么需要if条件结构,使用if条件结构可以解决,什么是if条件结构,if条件结构是根据条件判断之后再
20、做处理,if(条件)/语句,if(令狐冲Java成绩 90)师父奖励令狐冲;,结合问题2,基本的if条件结构,如何使用if条件结构6-1,回顾:如果令狐冲的Java考试成绩大于90分,师父就奖励他独孤九剑剑谱,使用if条件结构该如何实现,import;public class HelloAccp2 public static void main(String args)Scanner input=new Scanner(System.in);(输入令狐冲的Java成绩:);int score=input.nextInt();/令狐冲的Java成绩 if(score 90)/判断是否大于90分(
21、师父说:不错,给你独孤九剑剑谱);,如何使用if条件结构6-2,3、令狐冲Java成绩大于90分,而且音乐成绩大于80分,师父奖励他;或者Java成绩等于100分,音乐成绩大于70分,师父也可以奖励他,分析:怎样把多个条件连接起来?,使用逻辑运算符,问题3的条件如何编写,如何使用if条件结构6-3,多使用小括号()控制优先级,score1 90&score2 80|score1=100&score2 70,运算符的优先级:最高的优先级:小括号,即()最低的优先级:赋值运算符,即=优先级顺序:!算术运算符比较运算符&|,public class HelloAccp3 public static
22、void main(String args)int score1=100;/令狐冲的语文成绩 int score2=72;/令狐冲的历史成绩 if(score1 90,?,如何使用if条件结构6-4,4、如果令狐冲考试成绩大于90分,师父就奖励他独孤九剑,否则师父就罚他上思过崖闭关思过,使用两个基本if条件结构,使用if-else条件结构实现,if(score 90)(师父说:不错,给你独孤九剑剑谱);if(score=90)(师父说:不孝徒,上思过崖闭关思过去吧);,如何使用if条件结构6-5,if-else条件结构,if(条件)/语句1 else/语句2,if(令狐冲考试成绩 90)师父奖
23、励令狐冲;else 师父罚他闭关思过;,结合问题4,使用if-else条件结构解决问题4,public class HelloAccp4 public static void main(String args)int score=89;/令狐冲的语文成绩 if(score 90)(师父说:不错,给你独孤九剑剑谱);else(师父说:不孝徒,上思过崖闭关思过去吧);,如何使用if条件结构6-6,小结5,说出已学过的数据类型有哪些?int、double、char、boolean、String举例说明已学过的运算符有哪些?赋值运算符、算术运算符、条件运算符、逻辑运算符if和if-else条件结构执行
24、的顺序是什么?if:如果条件表达式成立,执行语句if-else:如果条件表达式成立,执行语句1,如果不成立,执行语句2,为什么使用多重if结构,5、对学员的结业考试成绩评测 成绩=90:优秀 成绩=80:良好 成绩=60:中等 成绩60:差,使用多重if结构,多重if结构就是在else部分中还包含其他if块,什么是多重if结构,if(条件)/语句 else if(条件)/语句 else/语句,可以有多个,可以省略,多重if结构,如何使用多重if结构,使用多重if结构解决问题5,int score=70;/考试成绩 if(score=90)System.out.println(优秀);else
25、if(score=80)System.out.println(良好);else if(score=60)System.out.println(中等);else System.out.println(差);,大于等于90分,大于等于60分,小于80分,小于60分,大于等于80分,小于90分,完整代码演示,为什么使用switch结构,6、令狐冲参加比武大会如果获得第一名,将出任武林盟主如果获得第二名,将出任武当掌门如果获得第三名,将出任峨嵋掌门否则,将被逐出师门,使用if条件结构如何实现 实现代码,更好的解决办法:使用switch结构解决,switch(表达式)case 常量 1:语句;break
26、;case 常量 2:语句;break;default:语句;,switch结构,什么是switch结构,计算表达式的值,如果等于常量1,如果等于常量2,如果没有找到匹配的值,使用switch结构解决问题6,如何使用switch结构,int mingCi=1;switch(mingCi)case 1:(出任武林盟主);break;case 2:(出任武当掌门);break;case 3:(出任峨嵋掌门);break;default:(被逐出师门);,第一名的情况下,第二名的情况下,第三名的情况下,其他情况下,完整代码演示,常见错误3-1,int mingCi=1;switch(mingCi)c
27、ase 1:(出任武林盟主);case 2:(出任武当掌门);case 3:(出任峨嵋掌门);default:(被逐出师门);,输出结果是什么?,如果需要每个case执行完后跳出,在每个case后不要忘记写break;,常见错误3-2,int mingCi=1;switch(mingCi)case 1:(出任武林盟主);case 2:(出任武当掌门);case 2:(出任峨嵋掌门);default:(被逐出师门);,case后面的常量必须各不相同,代码错误,常见错误3-3,String day=星期一;switch(day)case 星期一:(星期一:青菜);break;case 星期二:(星
28、期二:鱼);break;default:,switch后面小括号中表达式的值必须是整型或字符型,代码错误,比较switch和多重if结构,相同点不同点switch多重if,都可以实现多分支结构,只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断,处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况,小结6,输入赵本山的考试成绩,显示所获奖励成绩=100分,爸爸给他买辆车成绩=90分,妈妈给他买MP490分成绩=60分,妈妈给他买本参考书成绩60分,什么都不买,参考代码,张三为他的手机设定了自动拨号按1:拨爸爸的号按2:拨妈妈的号按3:拨爷爷的号按4:拨奶奶的号
29、编程实现此业务,参考代码,1、盈盈为了考验令狐冲夺冠的决心,要他说一百遍“我能行!”,(第1次说:我能行!);(第2次说:我能行!);(第100次说:我能行!);,100条,2、盈盈要他说10000遍“我是最棒的!”,怎么办?,为什么需要循环2-1,演示完整代码,为什么需要循环2-2,(我是最棒的!);(我是最棒的!);(我是最棒的!);(我是最棒的!);(我是最棒的!);(我是最棒的!);(我是最棒的!);,int i=1;while(i=100)(我能行!);i+;,i=10000,我是最棒的!);,没有使用循环结构,使用while循环,完整代码1,完整代码2,什么是循环,生活中的循环,打
30、印50份试卷,10000米赛跑,旋转的车轮,循环结构的特点,锲而不舍地学习,什么是while循环,特点:先判断,再执行,while(循环条件)循环操作,符合条件,循环继续执行;否则,循环退出,循环中被重复执行的操作,int i=1;while(i=30)(我能行!);i+;,编码规范:缩进、换行,3、如何用程序描述下面这个故事呢?,为了备战,令狐冲锲而不舍地练习,盈盈严格把关“盈盈,怎么样,可以了吗?”“不行,高音部分唱得还不是很好,钢琴还要继续练啊!”没有听到“很棒”的评价,看来革命尚未成功,令狐冲并不气馁:早上5点练声,上午练钢琴,下午到声乐老师家练习唱歌,晚上练习舞蹈基本功。,循环条件,
31、循环操作,使用while循环的步骤1、分析循环条件和循环操作2、套用while语法写出代码3、检查循环是否能够退出,怎样使用while循环3-1,怎样使用while循环3-2,(表演得怎么样?(y/n):);answer=input.next();while(!answer.equals(y)(早上5点开始练声!);(上午练习钢琴!);(下午到声乐老师家练习唱歌!);(晚上练习舞蹈基本功!);(表演得怎样?(y/n):);answer=input.next();(圆满完成!);,循环条件,循环操作,比较两个String类型的值是否相等,怎样使用while循环3-3,4、录入班级人数和学员成绩,
32、计算班级学员的平均成绩,循环条件:目前录入的成绩数目小于总人数循环操作:录入学生成绩,并累加求和,while(i=stuNum)(请输入学号+i+的成绩:);score=input.nextInt();sum=sum+score;i+;avg=sum/stuNum;,while循环常见问题3-1,/*打印4次“欢迎ACCP学员”*/public static void main(String args)int i=0;while(i 4)(欢迎ACCP学员);i+;,永远都不会退出的循环称为死循环,循环一直执行,不会退出,哪里出错了?,while循环常见问题3-2,/*打印4次“欢迎ACCP学
33、员”*/public static void main(String args)int i=1;while(i 4)(欢迎ACCP学员);i+;,i=4,只打印了三次,哪里出错了?,注意检查循环次数是否满足需求,while循环常见问题3-3,/*打印4次“欢迎ACCP学员”*/public static void main(String args)int i=0;while(i 5)(欢迎ACCP学员);i+;,注意:如果一开始条件就不满足,while循环一次都不执行,i 5,一次都没有打印,哪里出错了?,2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到2
34、0万人?,提示:1、循环条件和循环操作分别是什么?2、int year=2006;double students=80000;while 3、2007年培训学员数量=80000*(1+0.25),参考代码,小结7,do-while循环,5、如何用程序讲述下面的故事?,苦练半年,眼看大赛在即,盈盈提议:彩排一次,如果很令人满意,以后就不用彩排了,否则每天都要彩排,直到现场表现让她满意为止!他能否用动听的歌声震撼盈盈,用美妙的钢琴声博得赞赏呢?,do 循环操作while(循环条件);,while(循环条件)循环操作,while循环先判断,再执行不适合描述此故事,?,什么是do-while循环,do
35、 循环操作 while(循环条件);,先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出,特点:先执行,再判断,怎样使用do-while循环2-1,do(唱歌!);(演奏肖邦钢琴曲!);(可以了吗?(y/n):);answer=input.next();while(!answer.equals(y);(大功告成!);,循环条件,先执行一遍循环操作,怎样使用do-while循环2-2,6、连续录入学生姓名,输入“q”则系统退出,String name;Scanner input=new Scanner(System.in);do(请输入学生姓名:);name=input.next();w
36、hile(!name.equals(q);(程序结束);,while循环和do-while循环的区别语法不同初始情况不满足循环条件时while循环一次都不会执行do-while循环不管任何情况都至少执行一次,do 循环操作 while(循环条件);,while(循环条件)循环操作,先判断,再执行,先执行,再判断,比较while和do-while,小结8,使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。转换关系:华氏温度=摄氏温度*9/5.0+32,参考代码,提示:1、循环操作:计算摄氏温度,并输出对照条目2
37、、循环条件:条目=10&摄氏温度=250,程序调试9-1,令狐冲锲而不舍地练,但还是不令人满意。怎么回事呢?他仔细地分析,哪一步出错了呢?歌唱得不好?钢琴演奏不过关?这次,他每进行一步都问盈盈的评价。盈盈觉得令狐冲唱歌感情投入不够。问题找到啦!唱歌时练习先打动自己,再打动别人 嘿嘿,问题解决。“大功告成!”,程序出错,分步运行,查找原因,找到问题,修正错误,解决问题!,程序调试9-2,当程序出错时,我们也希望能这样:程序执行时忽闪一下就运行结束,怎么让程序一步一步运行?,程序调试,断点:程序暂停执行的代码行,程序调试9-3,7、使用do-while打印5次“你好,世界!”,int i=1;do
38、(“你好,世界!);i=i+1;while(i 5);,完整代码,只打印了4次!怎么查找错误呢?,程序调试9-4,程序调试的步骤1、猜测出错位置,设置断点2、单步运行3、观察变量4、发现问题5、修正代码,重新运行6、解决问题,程序调试9-5,步骤1:猜测出错位置,设置断点然后,点击工作台上 按钮,启动调试,启动调试,双击对应代码行的左侧边栏即可设置断点,程序调试9-6,步骤2:单步运行调试启动后,运行到设置断点的代码行将停住点击 按钮可以单步运行程序,观察程序运行过程,单击按钮,单步运行,单击“继续”按钮或F8,执行时只在断点处停下,程序调试9-7,步骤3:观察变量单步运行时可以在“变量”视图
39、中看到变量当前的值,程序调试9-8,步骤4:发现问题 变量i值变为5时就退出了循环,循环只进行4次步骤5:修正代码,重新运行修改循环条件为:i=5步骤6:解决问题,程序调试9-9,调试 程序员70%时间在做的事情调试史话调试的主要方法,bug缺陷,找出并解决bug的过程,debug调试,小结9,1、程序调试的目的?2、程序调试的主要方法?3、调试的主要步骤?,找出缺陷原因,修正缺陷,设置断点、单步执行、观察变量,1、猜测出错位置,设置断点2、单步运行3、观察变量的值4、发现问题5、修正代码,重新运行6、解决问题,为什么使用for循环2-1,回顾问题1:令狐冲说一百遍“我最棒”回顾问题2:根据人
40、数和成绩,计算平均成绩,解决:使用while循环,共同点:确定的循环次数,更优解决:for循环结构,为什么使用for循环2-2,int i=0;while(i100)(我最棒);i+;,for(int i=0;i100;i+)(我最棒);,for比while更简洁,while循环结构,for循环结构,for循环的语法和执行顺序,什么是for循环,for(;);,条件为true,循环体被执行,for(int i=0;i 100;i+)(我最棒);,代码规范:格式对齐、代码的缩进,表达式1,表达式2,表达式3,循环操作,参数初始化,条件判断,更新循环变量,1,2,4,3,如何使用for循环3-1,
41、1、循环录入某学员S1的5门课成绩,计算平均分,循环次数:5循环条件:循环的次数不足5,继续循环循环操作:录入成绩,计算成绩之和,使用for循环结构的步骤1、分析循环条件和循环操作2、套用for语法写出代码3、检查循环是否能够退出,结合问题1,如何使用for循环3-2,/省略声明变量 for(int i=0;i 5;i+)/循环5次录入5门课成绩 System.out.print(请输入5门功课中第+(i+1)+门课的成绩:);score=input.nextInt();sum=sum+score;avg=sum/5;/计算平均分 System.out.println(name+的平均分是:+
42、avg);,初始值:i=0循环条件:i5循环变量改变:i+,循环操作执行5次,完整代码,如何使用for循环3-3,2、输出如图所示加法表,for(int i=0,j=val;i=val;i+,j-)System.out.println(i+j+=+(i+j);,1、循环初始化:i=0;j=输入值2、循环条件:i=输入值3、循环操作:计算i+j4、循环变量的改变:i+,j-,完整代码,表达式3可以是用“,”隔开的多个表达式,运算顺序从左到右,表达式1中可以声明多个同一类型的值并赋值,用“,”隔开,for循环常见问题4-1,for(;i10;i+)(这是+i);,int i=0;,编译错误:变量
43、i 没有初始化,for(;);,不能省略,可省略,表达式1省略,循环变量的初始值在for语句之前由赋值语句取得,for循环常见问题4-2,for(int i=0;i+)(这是+i);,编译正确,但是缺少循环条件,造成死循环,for循环常见问题4-3,for(int i=0;i10;)(这是+i);,i+;,省略表达式3,在循环体内应设法改变循环变量的值以结束循环,编译通过,但是循环变量的值无变化,造成死循环,for循环常见问题4-4,for(;)(这是测试);,表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环,否则会造成死循环,死循环,小结10,求1100之间不能被3整除的数
44、之和(使用for循环结构),参考代码,为什么需要break语句,int i=2;switch(i)case 1:(星期一);break;case 2:(星期二);break;/其他语句,遇到break,立即跳出switch语句,回顾break用于switch语句,描述4000米长跑比赛,for(int i=0;i10;i+)跑400米;,if(不能坚持)break;/退出比赛,第8圈,快累死了我要退出,什么是break语句,break:改变程序控制流用于do-while、while、for中时,可跳出循环而执行循环后面的语句,while()break;,跳出整个循环,break通常在循环中与条
45、件语句一起使用,如何使用break语句2-1,3、循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误,循环录入成绩,判断录入正确性:录入错误,使用break语句立刻跳出循环;否则,累加求和,如何使用break语句2-2,for(int i=0;i 5;i+)/循环5次录入5门课成绩(请输入5门功课中第+(i+1)+门课的成绩:);score=input.nextInt();/从控制台接收数据 if(score 0)wrong=false;/出错标识 break;/退出循环 sum=sum+score;循环外的语句,对录入的分数进行判断,如果小于0,标记出错状态,
46、并立即跳出整个for循环,问题3完整代码演示,110之间的整数相加,得到累加值大于20的当前数,1、使用循环进行累加,从1到102、判断累加值是否大于203、如果大于20,则跳出循环,并打印当前值,/定义一个变量,进行累加 int sum=0;for(int i=1;i 20)System.out.print(当前数是:+i);break;,参考代码,小结11,为什么需要continue语句,4、循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例,1、通过循环,获得分数大于等于80分的学生人数num2、判断:如果成绩80,不执行num+,直接进入下一次循环,什么是continue
47、语句,continue:只能用在循环里continue 作用:跳过循环体中剩余的语句而执行下一次循环,while()continue;,继续下一次循环,通常与条件语句一起使用,加速循环,for(int i=0;i10;i+)跑400米;if(!口渴)continue;/不喝水,继续跑 接过水壶,喝水;,示例,如何使用continue,for(int i=0;i total;i+)(请输入第+(i+1)+位学生的成绩:);score=input.nextInt();if(score 80)continue;num+;/大于等于80分的人数double rate=(double)num/total
48、*100;System.out.println(80分以上的学生所占的比例为:+rate+%);,对录入的分数进行判断,如果小于80,跳出本次循环,执行下一次循环,问题4完整代码,1、使用循环进行累加,循环的范围是从1至102、判断当前数是否为偶数3、如果为奇数跳过,执行下一个循环,如果为偶数,进行累加,int sum=0;/定义一个变量,进行累加for(int i=1;i=10;i+)if(i%2=1)continue;/如果i为奇数,结束本次循环,进行下一次循环 sum=sum+i;System.out.print(1-10之间的偶数和是:+sum);,小结12,求110之间的所有偶数和,
49、完整代码,对比break和continue,对比方法:通过Eclipse单步运行,观察程序执行顺序变量值的变化观察案例案例1:110之间的整数相加,得到累加值大于20的当前数 案例2:求110之间的所有偶数和,观察案例1,单步运行案例1进行代码跟踪设置断点点击 按钮,启动调试点击 按钮,程序单步执行观察程序执行流程、变量sum和i的变化,断点,案例完整代码,观察案例2,单步运行案例2进行代码跟踪设置断点点击 按钮,启动调试点击 按钮,程序单步执行观察程序执行流程、变量sum和i的变化,断点,案例完整代码,小结13,说一说在循环中使用continue和break的区别?,int sum=0;fo
50、r(int i=0;i5;i+)if(i=3)break;sum=sum+i;System.out.println(sum=+sum);,sum=3,sum=7,输出值是多少?如果将break替换成continue,输出值又为多少?,替换后,循环结构总结2-1,到目前为止所学的循环结构有哪些?,需要多次重复执行一个或多个任务的问题考虑使用循环来解决,循环总结2-2,int i=0;int sum=0;while(i10)sum=sum+i;i+;,int i=0;int sum=0;do sum=sum+i;i+;while(i10);,int sum=0;for(int i=0;i10;i+