程序的运行顺序:
顺序结构:从程序开始,到程序结束
分支结构:在顺序结构基础上,根据条件进行选择执行方向。
循环结构:在顺序结构基础上,根据条件进行多次执行相同的或相似的代码
分支结构:根据条件的成立与否,选择执行方向。
(一)if分支结构:
语句1;
if(条件表达式){
代码块//条件成立时,执行的逻辑
}
语句2;
执行逻辑:执行完语句1后,碰到if,一定会执行
条件表达式,结果为true,就执行代码块,
然后再执行语句2。
结果为false,就跳过代码块,执行语句2
if(条件表达式){
代码块1// 条件成立时执行此代码块
}else{
代码块2// 条件不成立时执行此代码块
}
执行逻辑:当程序执行到if时,一定会执行条件表达式进行判断
结果为true,就执行代码块1.
结果为false,跳过代码块1,执行代码块2
if(条件1){
代码块1;
}else if(条件2){
代码块2
}else if(条件3){
代码块3
}else{
代码块4
}
执行逻辑:程序执行到if时,一定会执行条件1,进行判断
结果为true,执行代码块1。
结果为false,执行条件2,进行判断
结果为true,执行代码块2.
结果为false,执行条件3,进行判断
............
当if语句中含有else{}部分时,一定会执行其中一条分支。
没有else{}部分时,有可能一条分支都不执行
(二)switch-case语句
格式:
switch(整数表达式){
case value1: 代码块1;[break];
case value2: 代码块2;[break];
..........
[default: 代码块n;]---[]表示可有可无
}
整数表达式:即能获得一个整数的表达式。
但是jdk1.7版本以后,支持字符串表达式
case后的值与()内的结果类型要相同
break:有打断,毁掉,跳出,结束的含义
执行逻辑:
当程序遇到switch时,计算表达式的值,然后
匹配case后的值,然后,执行对应的分支逻辑。
如果此分支有break.就结束分支结构,如果此分支
没有break,就继续执行下一条分支逻辑,直到
遇到break或default或全部执行完后续的所有分支。
if语句:
执行分支的是一个条件表达式:
如果有else{}部分,一定会执行其中一条分支。
switch-case语句:
执行分支的是一个整数或字符串表达式
如果有default部分,一定会执行分支。
一般与break连用
==================================================================
循环结构
:当重复执行相同的代码或者是相似的代码时。
循环三要素:
1): 循环变量的声明和初始化:用于控制循环次数的循环因子
2): 循环条件: 用于判断是否执行相同或相似内容(循环体)的条件
3):循环变量的改变方向: 向着循环结束的方向改变。
(1)for循环:
语法:
for(变量的声明和初始化;循环条件;变量的改变方向){
循环体;
}
执行逻辑:
程序遇到for时,一定执行 变量的声明和初始化
然后执行循环条件的判断
如果为false,会跳过循环结构,执行后续代码。
如果为true,执行循环体,然后再执行变量的改变
再执行循环条件的判断,
.......
循环体:是要重复执行的相同或相似逻辑
break关键字:用在循环结构中时,表示结束/打断循环,
用在多层循环时,退出一层循环
continue关键字:用在循环结构中,表示结束当次循环体,继续
下一次循环
双层for循环
总结:
双层循环:
外层变量执行一次,内层变量执行一遍
或
外层变量控制行数,内层变量控制列数
(2)while循环
语法:
while(循环条件){
循环体
}
执行逻辑:
当程序遇到while时,一定执行循环条件,
如果判断结果为false,就结束循环结构,执行后续代码
如果判断结果为true,就执行循环体,
然后再判断循环条件......
(3)do-while循环
语法:
do{
循环体
}while(循环条件);
执行逻辑:当程序遇到do关键字时,一定先执行一次
循环体,然后再判断循环条件,
如果条件为false,结束循环结构,执行后续代码
如果条件为true,再执行一次循环体,
然后再判断条件的成立与否
........
while/do-while/for的区别:
while/do-while:适合不知道循环次数的逻辑
for:适合知道循环次数的逻辑
while/for一般先判断条件,再执行循环体
do-while:一定先执行一次循环体,再判断条件
小技巧:什么时候使用while,什么时候使用do-while
某些逻辑可以翻译成如下:
当......就执行.....:适合使用while
做.....直到.......:适合使用do-while