黑马程序员_java的语言基础组成进阶(对第三课程序流程控制的总结)

来源:互联网 发布:bc417中文数据手册 编辑:程序博客网 时间:2024/06/06 11:41

------- android培训、java培训、期待与您交流! ----------


通过今天对java语言基础组成中的程序流程控制(语句)的学习,我来给自己的学习内容做下简单直白的总结:

首先我来说下程序流程控制,在java中它有判断结构,选择结构和循环结构..


对于判断结构:它有3种表现形式,一层判断(if),二层判断(if else)和多层判断(if   else if   else ),对于一层判断来说,只要你的条件表达式满足,就会执行if区间内的语句..而二层判断也容易理解,你的条件表达式满足,就会执行if里的语句,不满足的情况下会执行else里的语句....

对于多层判断,我来总结下它需要稍微注意点的地方,比如:


通过以上的代码,运算完的结果是11,也就是说在多层判断的情况下,只要有一个条件表达式有满足,执行完该条件表达式里的内容后,程序就会停掉,不会在执行下面还满足条件表达式里的内容了..



对于选择结构:它的格式里面涉及了4个关键字 (switch,case,break,default)...break是跳出switch语句,只要一跳出,switch语句就随之结束了。而default是当switch里的表达式值都不正确的情况下,会执行default下面的语句..

选择结构switch语句有一些特点,让我来对照代码的形式总结一下它的特点:


对照以上的代码,我来总结下选择结构switch语句的特点:

1,首先switch语句的表达式只能选择除了long以外的整数类型和字符类型..


2,从上述代码中,我们可以发现case与case之间,以及与default之间并没有顺序可言。先执行有第一个具体答案的case(也就是代码中的case 4),在所有的case都不匹配的情况下,才最后执行default下面的默认语句..


3,结束switch语句的两种情况:当遇到break的时候,switch会自动结束。还有就是执行到了switch语句结尾...也就是执行到了区间符号 }的时候switch会自动结束。(从上述代码中,可以确定最后的一个case语句下可以不用写break,因为执行到 }了,也会自动结束switch语句..)


4,如果匹配的case或者default下,没有对应的break,那么程序会继续向下执行,不做任何判断的执行下面的语句,直到遇到break或者switch语句结尾}才结束...(从上述代码中可以看出,它会执行匹配的default下的语句,因为default对应的没有break,所以它会继续向下执行,不会再做判断,就把default的语句,case 4的语句以及case 2的语句执行完,直到碰到了case 2语句下的break,才会自动结束switch语句..)


扩展:从以上总结的判断语句和选择语句中,可以发现判断语句和选择语句很相似,但是它们也存在着一定的区别:

虽然switch语句和if语句都能判断具体数值...但当if语句判断区间的时候,它更容易些,switch语句判断区间很费力...最重要的是if语句能判断结果是布尔类型的,而switch语句可判断不了..

所以,如果要判断具体数值且数值不多,并且满足byte,shott,int,char这4种类型的时候,虽然2种语句都能使用,但使用switch语句稍显高效些...其它情况一般都用if语句来判断,它的使用范围更广些..



对于循环结构:当对某些语句要执行很多次的时候,就使用循环结构..它有3关键字:(while)(do while)(for)

while循环:while的条件表达式可以做直接判断,只要条件表达式满足,就会执行循环体里的语句..

for循环:for(初始化表达式;条件表达式;循环后的操作表达式){},注意一点的是初始化表达式只执行一次,在条件表达式满足的情况下才执行循环体里的语句,然后才执行循环后的操作表达式,最后会跳到条件表达式里判断,只要条件满足,继续循环..

do while循环:先执行循环体里的内容,在判断条件表达式是否满足..

总之:用do while循环时,无论条件表达式是否满足,循环体至少执行一次..


扩展:通过对循环结构的总结,我们可以发现,只要是用for循环能写出来的语句,用while也一定能写的出来.但它俩也有一些区别:

变量的作用域区别:while的初始化表达式是定义在了循环外部,while循环结束时,定义在初始化表达式上的变量并不会在内存中消失.(变量不消失)

而for的初始化表达式是定义在循环内部..for循环一结束,定义在初始化表达式上的变量就会随之消失(变量随之消失)

这里我们需要注意一点:对于for循环里的初始化表达式来说,并不是仅仅的只能定义变量,只要是合法的表达式就行..但循环条件表达式必须要明确清楚..


最后,如果在初始化表达式上定义的变量(x),只是用来做每一次循环过后的增量存在的话(int x=3,x<5,x++){},那么该变量在循环一结束就会自动释放,会节约内存,用for更加的合适..

while和for无限循环都有最简单的表现方式:

while(true){}... 对while来说,条件表达式为真的情况下,它会无限循环..

for( ;;){}....对for来说,不写条件表达式,默认就是真,它也会无限循环..


原创粉丝点击