目录
概要
Java程序逻辑控制,通俗说,就是对代码执行顺序的控制。分为三大类: 顺序结构,循环结构,分支结构
一. 顺序结构
顺序结构,就是按照代码书写的顺序,以 ; 划分,一条一条的执行。
二. 分支结构
1.if,else
语法格式1:
if ( 条件表达式 ){
需要执行的代码;
}
执行过程:
条件表达式,结果必须是布尔类型(boolean)。
如果条件结果为真(true),则执行“{ }”内的代码;相反,为假(false) 则不执行
语法格式2:
if ( 条件表达式 ){
需要执行的代码;
}
else{
需要执行的代码;
}
执行过程:
如果条件结果为真(true),则执行 if的“{ }”内的代码,else { }内的代码不执行,整体结束;
相反,为假(false) 则执行 else 的 { } 内的代码。
语法格式3:
if ( 条件表达式 ){
需要执行的代码; // 1
}
else if ( 条件表达式 ) {
需要执行的代码;// 2
}
else{
需要执行的代码;//3
}
执行过程:
如果 if 条件表达式结果为真,则执行1处的代码。2和3处的代码不执行,整体结束
如果为假,则对else if 的条件表达式进行判断, 如果为真,则执行2处的代码,如果为假,则执行3处的代码
注意:
- 条件表达式的结果必须都是布尔(boolean)类型
- else 与离它最近的 if 或者 else if 相匹配
- if ,else if , else 都可以不带 { }。但是这三者的作用范围只有一条语句。
2.switch
语法格式:
switch ( 表达式){
case 常量值1:
代码;
break;
case 常量值2:
代码;
break;
。。。
default:
代码;
break;
}
执行过程:
- 先计算表达式结果
- 表达式结果与所有case 后的常量值相匹配,匹配相等,就执行该项下的所有,直到遇见break,结束整体运行。
- 如果,表达式结果没有和任何一个匹配成功,则执行default 下的代码
注意:
1. 多个case后的常量值不可以重复
2.switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long类型
引用类型:String常量串、枚举类型
3.break 不要遗漏, 否则会失去 "多分支选择" 的效果
4.switch 不能表达复杂的条件
5.switch 虽然支持嵌套, 但是很丑,为了代码的可阅读性,一般不推荐~
三. 循环结构
1.while 循环
语法基本格式:
while( 循环条件 ){
需要执行的代码;
}
执行流程
如果循环条件为真(true), 则循环内的代码会一直被重复执行。直到循环条件为假(false)
如果循环条件一直为真,则会陷入“死循环”,一直重复执行循环内的代码
演示:计算1-10的累加和
public static void main(String[] args) {
int i=1;
int num=0;
while (i<=10){ //首先判断 i 是否小于10,结果为真,执行循环内的代码,相反,循环结束,不在执行。
//每到循环内的代码全部执行完毕时,就会回到判断条件,再次进行判断
num+=i;
i++; //每循环一次,i都加1.
}
System.out.println(num);
}
2.do while循环
基本语法:
do{
代码;
}while(循环条件);
do while循环 和 while 循环类似:不同的是:do while 是先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束
演示:
public static void main(String[] args) {
int i=1;
int num=0;
do{
num+=i; //先执行代码
i++;
}while (i<=10);
System.out.println(num); //在进行循环条件判断
}
3.for 循环
基本语法:
for( 表达式1 ; 表达式2 ; 表达式3 ){
代码4;
}
执行流程:
表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件结果为真,则循环继续,执行循环内的代码,否则循环结束
表达式3: 循环变量更新方式执行顺序:1,2,4,3 -->2,4,3-->......-->直到2结果为假,循环结束执行。
注意:
表达式2 必须是布尔类型的条件表达式,结果只能为真(trur) 或 假(false)
演示:
/*
1.首先给i初始值
2.判断 i<=10 结果是否为真
为真,执行System.out.println(i);输出i的值
为假,结束循环
3. i自身加1
4,在判断 i<=10 结果是否为真。
按顺序,重复2,3,4操作。直到2操作的表达式结果为假,循环结束
*/
public static void main(String[] args) {
int i=0;
for(i=1;i<=10;i++){
System.out.println(i);
}
}
四. break 和 continue
1.break ( break 的功能是让循环提前结束 )
演示:
public static void main(String[] args) {
int i=0;
while (true){ //循环条件是真,且没有代码对他修改,循环应该陷入 死循环
i++;
System.out.println(i); //输出i的值
break; //遇到break;,循环不在管循环条件的约束,直接结束罢工。
}
}
}
2. continue ( continue 的功能是跳过这次循环, 立即进入下次循环 )
演示:打印1-10中除开3的倍数所有数字