流程控制语句
if 语句
if单分支语句:
语法:
* if(boolean表达式){
* code...
* }
程序执行到if语句 ,先判断 boolean表达式的值,如果是true ,则进入后面的大括号中执行里面的代码,如果为假 则 跳过后面的大括号
if的双分支语句:
语法:
* if(boolean表达式){
* code1
* }else{
* code2
* }
先判断 boolean表达式的值 ,如果为真, 则执行code 1 ,如果为假 ,则执行code2。
if的多分支语句:
* if(boolean表达式1){
* code1..
* }else if(boolean表达式2){
* code2..
* }else if(boolean表达式3){
* code3....
* }
* ......
else{
code n......
}
先判断 if 后的 boolean表达式1, 如果为真 ,则执行code1 后面的其他分支 全部跳过 ,如果 boolean表达式1 为假, 则跳过code1 接着判断 boolean表达式2 如果 为真 ,则执行 code2。
如果为假, 则跳过code2 ,接着判断 boolean表达式3 … 如果 所有的 if 后的 表达式 都为假, 则 执行 最后的else coden。
不要把If语句直接写在类中 (在一个类中方法和方法是同级的,不能再方法里面再创建一个方法)
switch语句
语法:
* switch(exp){
* case value1:{
* code 1;
* break;
* }
* case value2:{
* code 2;
* break;
* }
* case value3:{
* code 3;
* break;
* }
* ......
* default:{
* code n;
*
* }
* }
switch支持可以直接转为int型的类型。例如:short char byte int
拿表达式的值和 case 后的 value 进行匹配,如果匹配的上 就执行该case 后的大括号中的内容 如果大括号中。
有break 关键字 则 中断switch case 语句,如果 exp的值 和所有的 case 后的value都没有匹配上 则 执行 default 后的内容。
break语句
break: 关键字 在 switch case 中的作用 是中断匹配,一旦执行到break ,就会中断switch case 语句,
但是 这里的break 关键字 不是必须的 ,如果没有break 则会出现 switch 穿透现象, 会穿透到 下一个case 后的
大括号中执行 而不进行匹配 , 有时 咱们会根据 switch 穿透这个特性实现某些功能。
** 注意:**
1.case 后的value 值不能重复
2.switch 后的表达式的值得类型 有要求 支持 byte short char int String Enum
3.default 语句可以省略
while语句
语法:
* while(boolean表达式){
* 循环体
* }
执行流程: 程序执行到while语句,先判断 boolean表达式的值 若表达式的值为真 则执行循环体的内容 执行完循环体之后 ,回过头来再次判断 boolean表达式的值, 如果为真 ,则 继续执行循环体 继续判断表达式的值 , 如此循环 直到 表达式的值为假, 则停止循环。若表达式的值 一直为真 ,则一直循环 。
一般情况 : 要注意控制循环的终止条件 避免出现死循环
循环结构的本质: 重复的执行循环体中的代码 , 直到不满足循环条件
循环结构:
初始化部分:指的是初始条件 , 一般是循环变量的初始值。 通过该变量可以控制循环条件的真假 ,这个变量可以称为循环变量。 (循环变量一般在boolean表达式中)
循环条件: while后小括号中的内容 , 是一个布尔表达式 , 每一次循环之前 ,都要先判断这个表达式的值。 如果为真 ,则执行循环 ,如果为假 ,则跳过循环。
循环体:大括号中的内容 就是循环体 , 可以是 一条语句, 也可以是多条语句。
迭代部分: 通常是循环体的一部分, 用来改变循环变量的值, 从而改变循环条件 ,boolean表达式的值。
关键点: 使用循环的时候 , 要对循环条件敏感 ,要知道什么时候终止循环。
Do while语句(do–while 先执行后判断,至少执行一次)
语法:
* do{
* 循环体
* 迭代部分 一般和循环体写在一起
* }while(循环条件);
*
先执行一次循环体 , 再判断循环条件, 如果为真 ,则继续执行循环体 ,如果为假 ,则终止循环。
和 while 对比
while是 先判断循环条件,为真, 则循环 ,为假 ,不循环。
do while 是先执行一次循环体 ,为真 ,则循环, 为假, 不循环。 意味着 do while 的循环体至少执行一次。
For语句
语法:
* for(初始化部分①;循环条件②;迭代部分③){
* 循环体 ④
* }
执行流程:
1.先执行初始化部分 , 这部分只执行一次
2.再执行循环条件, 这个循环条件是一个布尔表达式 ,如果为真 ,则执行循环体 .如果为假, 则结束循环。
3.循环条件为真, 执行循环体。
4.循环体执行完 , 再执行迭代部分, 迭代部分的代码一般会改变循环变量的值 , 从而改变循环条件的结果, 以此来控制循环是否继续 。 也就是说 ,迭代部分执行完 ,再次执行循环条件 , 根据循环条件的结果 判断是否继续执行循环体 继续循环。
for 循环都是先判断 后执行
注意:循环变量的作用域问题 : 如果是在循环内部声明的变量 ,那么循环变量的作用域就只在循环语句内有效。 超出循环语句就无效 ,那么 ,如果想在for 循环外部访问 循环变量,那么 可以把循环变量声明在 循环语句之外
多重循环 : 循环嵌套
-
一个循环体内又包含另一个完整的循环结构
任何两种循环都可以相互嵌套
可以任意层次循环,但是一般不超过3层 -
多重循环执行过程
外层循环变量变化一次,内层循环变量要变化一遍
for(int i=0;i<vakue;i++){
for(int j =0;j<value;j++){
循环体
}
}
------------------
while(循环条件){
for(int i=0;i<value;i++){
循环体
}
}
执行过程: 外层循环一次 内层循环一圈