分享

流程控制语句

 太极混元天尊 2018-05-08

With An Orchid(心兰相随) 来自Java资源社区 05:06

 一
顺序结构:从上向下,一行一行执行

System.out.println('a');

System.out.println('b');

System.out.println('c');

System.out.println('d');

 二
选择结构(分支结构):if语句、switch语句

为什么要有分支结构?

a.当程序面临选择的时候,每种选择对应一种操作(结果)使用分支;

b.当程序面临选择的时候-->小括号()

选择下面对应着相应的操作(结果)-->大括号{}

1、if语句有三种格式(如果...就...否则...)

1.格式

①格式1

if(比较表达式){

  语句体;

  }

②执行流程:先计算比较表达式的值,看其返回的值是 true,还是false。如果是true,就执行语句体;如果是false,就不执行语句体。 

③例如:

if(下雨){

  打伞

  }

  不打伞

2.格式

①格式2

if(比较表达式){

  语句体1;

}else{

  语句体2;

}

②执行流程:首先计算比较表达式的值,看其返回的值是true,还是false,如果是true,就执行语句体1;如果是false,就执行语句体2。

③记忆:如果...就...

               否则就...

3.格式

①格式3

if(比较表达式1){

语句体1;

}else if(表达式2){

语句体2;

}else if(表达式3){

语句体3;

}

.....

else{//可省略

语句体4;

}

②执行流程:首先计算比较表达式1的值,看其返回值是true,还是false。如果是true,执行语句体1;如果是false,接着计算比较表达式2,看其返回值是true,还是false。如果是true,执行语句体2;如果是false,接着计算比较表达式3,看其返回值是true,还是false。

③注意:最后一个else可以省略,但是不建议省略,因为它可以对范围外的错误值进行提示。 

2、switch

1.语法格式:

switch(表达式){

   case 值1:

语句体1;

break;

   case 值2:

语句体2;

break;

...

default: //可以省略 但是不建议省略

语句体n+1;

break;

}

2.执行流程:先计算表达式的值,然后和case后面的值进行匹配,如果有就执行对应的语句体,否则继续向下匹配case ....,最后default默认。

3.注意事项:

①case后面只能是常量,不能是变量,而且多个case后面的值不能出现相同的;

②default可以省略,但是不建议省略,因为它的作用是对不正确的情况进行匹配描述。特殊情况case就可以把值固定住。

③switch(表达式)必须有值;byte short char int (只支持能等价成int的);String(字符串)-->jdk1.7加入的特性;枚举 (基本不用了)。

④break:最后一个可以省略,其他最好不要省略;如果省略了,会出现一种现象叫case穿透。最终我们不建议省略。

⑤switch语句的结束条件:第一种情况是遇到了break就结束了;第二种情况是执行到了switch的右大括号就结束了。

⑥default一定要在最后吗?从语法的角度考虑,default语句可以写在switch分支语句的任意地方,但是建议写在最后,若不写在最后需要添加break,书写在最后不用添加。

⑦注意:default可以写在case前面,但是代码还是先从case开始读,只有case答案都不对才执行default。

4.总结:switch语句和if语句的各自使用场景

①相同点:都是分支语句

②不同点:

a.语法不同

b.使用场景不同:if 表达式的值在某个区间范围之内;switch 变量的值是某个定值。如果是区间,就用if;如果值不多,数据类型有限制,就用switch。相对于if来讲,switch比if效率略高。

c.()表达式类型不同:if 语句表达式的值 返回是boolean true/false;switch 表达式值类型是 byte short char int 枚举String。

 三
循环结构

1、三种循环(java的循环语句分为三种:while、do..while、for)

1.while循环

①语法格式

A基本格式

while(判断条件语句){

循环体语句(重复做的事情);

}

B完整格式

初始化语句;

while(判断条件语句){

循环体语句;

控制条件语句;

}

③执行流程:

a.执行初始化语句;

b.执行(判断条件语句):看其返回的结果是true,还是false;如果是true,就执行{};如果是false,就结束循环。

如果b的结果是true,执行循环体语句;执行控制条件语句;回到第二步继续执行。

2.do-while循环

①语法格式

初始化语句;

do{

循环体语句;

控制条件语句;

}while(判断条件语句);

②执行流程:

a.执行初始化语句

b.执行循环体语句

c.执行控制条件语句;

d.执行判断条件语句():看其返回值是true,还是false;如果是true,就继续循环{};如果是false,就结束循环;

e.true回到第二步继续执行。

3.for循环

①语法结构

for(初始化表达式;条件表达式;循环后的操作表达式){

循环体;-->要循环执行的内容

}

②执行流程

a.执行初始化表达式;

b.执行判断:如果是true,就循环执行循环体;如果是false,就结束循环。

c.如果b是true,执行循环体语句;

d.执行循环后的操作表达式;

e.回到2继续执行。

③注意

a.循环体语句如果是一条,大括号可以省略;如果是多条,大括号不能省略,建议永远不要省略;

b.判断条件语句(条件表达式),无论简单还是复杂,结果都是boolean类型。

④For、while、do-while三种循环的异同点

a.while循环能解决的问题for循环都可以解决;for循环是用的最多、最频繁的循环,并不是说for循环的性能最优,而是它很简洁;do-while用的比较少。

b.for循环和while循环区别

如果你想在循环结束后继续使用控制条件的那个变量,用while循环,否则用for循环;for循环变量及早从内存中消失,可以节省内存空间。

2、循环嵌套 (for的多重循环嵌套)

一个语句体里面,嵌套其他的语句体-->嵌套;在一个循环中,又有其他的循环。while循环可以;for循环可以。可以理解为:外层循环是行;内层循环是列。

3、流程控制语句break、continue、return

1.break

使用场景:只能在switch和循环中结束整个循环

注意:

①当不写break的时候循环继续执行,直到条件语句返回false结束;

②写上break之后,当程序执行到break就退出整个循环,不再执行循环了;理解为跳出循环,炸掉循环。

③两种循环的死循环写法

a.for(;;){}

b.while(true){}

2.continue

使用场景:只能在循环中使用

注意:跳过本次循环,结束本次循环,接着开始下一次循环。

3.return返回

其实它的作用不是结束循环的而是结束方法的。

return关键字不是专门用来结束循环的,但是循环语句肯定是写在方法里的,所以它可以实现结束循环的效果。

4.break和return的区别

①break停止循环,循环下面的内容还会执行;return返回方法,结束方法下面的语句将不会再执行。

②break、continue、return区别:break是结束整个循环--->跳出整个循环;continue是终止本次循环继续下次循环;return结束方法。

5.break扩展知识点

①控制跳转语句标号——标记:标记某个循环,对这个循环进行控制。

②在多重循环体中最内层的break语句,跳出的是当前循环;可以借助“标记”来完成外层循环的结束;想要结束哪一层,可以用“标记”来告诉break。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多