Java流程控制
* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行。
* 判断结构--对条件进行判断,执行相应的语句。有三种常见的形式
< if(判断条件){语句;}--为真执行语句,否则不执行
< if(判断条件){语句;}else{语句;}--注意这个结构是一个整体,只会执行一个分支,为真-if控制的语句,假-执行else控制的语句。
< if(判断条件){语句;}else if(判断条件){语句;}else{语句;}--注意多重条件判断-这个结构也是一个整体,只会执行一个,满足后不会判断其他的分支。
注意:
if结构如果只控制一条语句可以不写大括号,初学者最好写上括号。
一条语句--可能是单行语句/复合语句-大括号扩起来的语句
if-else结构可以和三目运算符某种程度的替换,可以替换条件是执行后有一个结果是值。
假如一个判断结构写出太多条件--可能就要进行条件合并
* 局部代码块--定义在函数里面,用大括号阔起来的语句组
主要作用-就是控制局部变量的生命周期,及时的是否内存
* 选择结构--给出有限的备选路径
基本结构:
switch(变量值){
case 值1:语句;break;
case 值n:语句;break;
default: 语句;break;(最后一个break可有可无)
}
特点:变量类型有限定--short,int,byte,char
执行开始是从最近的一个case开始,书写顺序并无要求
switch语句结束标准:遇到大括号(自然的结束)或遇到break(跳出switch语句)
注意:
< 执行流程先从最近case比较匹配后有break就跳出switch语句,若没有break就不会判断下面的case--会一直执行到break/default控制的语句到结束。
< 没有一个匹配就执行dafault语句(写最后直接结束),或会执行到break或者大括号结束。
< break对switch的执行结果影响很大,要合理的使用
<if和switch的区别
if可以对值,区间,布尔变量进行判断
switch仅仅可以对值进行判断,对于有限的值得判断推荐switch-因为会把所有的备选项加载进去内存,所以会执行的比较快。
* 循环结构--其出现的目的是为了解决重复性操作,存在三种循环结构
while(条件表达式){参与循环的语句(包含循环后操作语句);}--其实和if很像,仅仅区别就是对同一条件的多次判断
for(1初始化表达式;2循环控制语句;3循环后操作表达式){4参与循环的语句;}
for循环的执行流程是先初始化-判断是否进入循环-执行循环体-后操作表达式(一次循环结束),其中三个表达式中第二个必须是布尔型,其余两个并无要求;变量个数可以多个,用逗号隔开。
do{语句}while(条件表达式);没有特别之处-就是至少会被执行一次
--如何书写循环--
1.分析问题如何用大白话解决
2.分析要重复执行的语句-放入循环里面
3.确定循环的控制条件
--选择哪种循环--
1.通常确定循环的次数一般选择for循环
2.无法确定循环次数的选择while循环
3.循环体至少要被执行一次选择do while循环
--循环控制方式--
1.计数器思想
2.标记变量控制循环
3.有时候需要两种结合使用--比如求素数
--循环嵌套--记住大圈套小圈(通常一对多思想)--分析有什么规律
--其他循环控制语句--
1.break-跳出当前循环-应用范围(switch,循环中通常结合if使用)
注意结合if使用仅仅是控制break何时对循环起作用,在嵌套循环中跳出的是所在循环
2.continue-结束本次循环进入下次循环(使用范围-循环中)
--注意不要用浮点数进行判断等于,浮点数是近似的处理--