先用一张图来说明今天的大纲
概念:如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。 如图:
概念:如果使用程序描述“如果今天是周一,就上班,如果今天是周二就逛街,如果今天是周三就去公园... ...”。显然使用顺序结构是搞不定的。 因为此时程序具有多个条件,需要通过条件判断来决定程序具体做什么,那怎么办呢?通过判断条件来做选择的语句,我们称为选择语句或分支语句。 现在,我们一起来学习选择结构,选择结构有两种:分别是if和switch。
if语句使用boolean表达式或boolean值作为选择条件,有三种结构形式: -------------------------------------------------------------------- 第一种结构: if(boolean条件) { 代码/当boolean条件结果为true的时候,就执行这里的代码. } 明天不下雨,我们就去公园. 注意: 1):不能写出:if(boolean条件);{} 2):若if的语句只有一句话,其实可以省略{},即是如此,也必须得写{}. 3):对于boolean类型的表达式,不要使用 boolean表达式==true的写法. 总之按照标准if语句来写就可以了,要从基础做好规范额!!! 第二种结构:if-else语句. 如果......,否则...... if(boolean条件) { 当boolean条件结果为true的时候,就执行这里的代码. } else { 当boolean条件结果为false的时候,就执行这里的代码. } ------------------------------ if-else结构和三元运算符的区别: 1):一个是结构,一个运算表达式. 2):运算表达式的是必须得有一个结果的. 3):从功能上,从语义上是相同的. ------------------------------ 不能单独使用else,必须先有if,再有else. 来来来,在讲解下一个if结构前来个需求,大家知道如何完成吗?? 需求:考试成绩大于90分,就打印优,如果大于80分,打印良,如果大于70分,打印中,其他情况打印多多努力。对于这个案例,如何解决. 这种情况可以使用下面if-elseif-else语句. if语句的第三种结构:if-elseif-else语句. if(boolean条件1) { 当条件1为true的时候,执行这里. } else if(boolean条件2) { 当条件2为true的时候,执行这里 } else if(boolean条件3) { 当条件3为true的时候,执行这里 } else { 上述所有条件,都不满足,就执行这里. } -图片镇楼--------------- 上面需求答案如下:
上述判断today变量的例子,从对与错的角度思考,没问题.但是,程序的可读性不好,不太简洁.----->switch语句(更简单,功能相同) switch的语法结构(和if-elseif-else的语义相同): --------------------------------- switch(整型表达式) { case A值: 语句1; break;//结束 case B值: 语句2; break; case C值: 语句3; break; default: 上述所有的结果值都不满足 语句. } 上面需求用switch解决如下: switch的语法分析以及注意: 1):switch中的表达式的结果/类型,必须是整数类型. 整数类型:byte,short,char,int.没有long. 从Java7开始,switch也支持String类型. 2):switch语句,一旦找到入口,就会进入,并执行功能语句,后面的case不再判断,除非语句break,或return或则执行完成,才会停下来-----穿透. 3):default表示,当case中的值都不成立的时候,才执行,一般的放在最后. ----------------------------------抉择------------------------------------- if和switch都是选择语句/条件语句,那到底什么时候选择使用if,什么时候选择使用switch. 分析各自的优缺点: 1): 对于所有的条件语句,if都可以完成. 2): swtich语句,只能正对于结果为数值的情况做判断. 3): 当if中条件的结果是数值的时候,使用switch更简单.
故事:话说唐僧师徒四人还在21世纪继续闯关,一天,师徒四人来到数字王国: 第一关:Boss叫傻乎乎的唐僧叫500声帅哥。可是唐僧平时吃素,体力不好,叫200声就晕了,咋办,悟空马上变了个复读机出来,录音,播放。 第二关:Boss觉得唐僧好欺负再叫他从1数到100。此时复读机用不上来了,咋办? 第三关:求100以内正整数和? 于是,唐僧算1到25的和,悟空算26到50的和,八戒算51到75的和,沙僧算76到100的和。 第四关:求1000以内正整数和? 于是,唐僧算1到250的和,悟空算251到500的和,八戒算501到750的和,沙僧算751到1000的和。 第五关:求10000以内正整数和? ブプヘベ崩溃ingペホボポ。。。。。 ------------------------------------------------- 案例:叫500声帅锅 案例:从1数到100 案例:帮大圣解决问题,计算100以内的正整数和。 在讲解案例之前我们首先把循环结构的分类说一下: 三大循环之while循环: 语法: while(boolean表达式) { 若boolean表达式结果为true,则执行这里.循环体 } 注意:先判断boolean表达式. 三大循环之do while循环: 语法: do { 循环体 }while(boolean表达式); 注意: do while,不管boolean表达式对与错,先执行一次循环体. 即使boolean表达式为false,do while也会执行一次. 推论: 无论条件如何,dowhile至少会执行一次. 三大循环之for循环: 语法: for(初始化语句;boolean表达式;循环之后的操作语句) { 循环体 } 初始化语句:定义变量,赋初始值; boolean表达式:判断条件,若条件为true,则进入循环体,若为false,则跳过循环. 循环之后的操作语句: 变量的自增/自减操作. 执行顺序: 1):初始化语句. 2):boolean表达式: true: GOTO 3 false:跳过循环,不执行循环体 3):执行循环体. 4):循环之后的操作语句, GOTO 2. 上面三个案例用循环结构解决如下:(看不清晰可以点击大图) 三大循环语句都一样,仅仅只是语法结构上不一样而已. 把while循环和for循环转换. 提示: 三大循环,是可以互换的,一般情况下,要是指定次数的循环,选用for循环要方便点。 一般的,习惯上选择i、j、k作为循环变量。
break语句:结束当前所在的循环. 注意:break之后的语句,执行不到,若编写了,则语法报错. continue语句:表示跳过的这一次当前循环,继而进行下一次循环. 注意:contine之后的语句,执行不到,若编写了,则语法报错. return语句:表示结束循环所在的方法,方法都结束了,循环结构自然也就结束了。 -------------下面控制外层循环比较少用,即基本不用--------------- 控制外层循环:此时就得使用标签了,标签就是给某个循环起的别名,不过该别名得满足标识符的规范。 若要控制外层循环,就在break或continue后面跟上循环的别名就OK了 如: break <标签名>; 一张图总结今天内容:
亲爱的JAVA酱们: 学习有困难或者想获取JAVA资料请加JAVA学习交流群 374320282或是加 小雨QQ746635765(←长按可复制) |
|