一、顺序结构
二、分支结构
2.1 if:
格式一:if( 条件表达式 ){
语句体;
}
格式二:if( 条件表达式 ){
语句体1;
} else {
语句体2;
}
格式三:if( 条件表达式 ){
语句体1;
} else if( 条件表达式 ){
语句体2;
}else if( 条件表达式 ){
语句体3;
}
…
else {
语句体n+1;
}
2.2 switch分支:
switch分支也是匹配条件执行分支,适合做值匹配的分支选择,结构清晰,格式良好
格式:
switch(表达式){ 执行流程:
case 值1: 1.先执行表达式中的值,与case中的值匹配
执行代码….; 2.匹配到那个case执行哪个case,遇到break跳出switch分支
break/; 3.与所有case不匹配执行default
case 值2:
执行代码….;
break;
….
case 值n:
执行代码….;
break;
default:
执行代码;
}
package edu.dhu.swtichdemo;
public class switchdemo {
public static void main(String[] args) {
String date="周一";
switch(date){
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
System.out.println("...");
break;
case "周三":
System.out.println("...");
break;
case "周四":
System.out.println("...");
break;
case "周五":
System.out.println("...");
break;
case "周六":
System.out.println("...");
break;
case "周日":
System.out.println("...");
break;
default:
System.out.println("输入数据有误");
}
}
}
2.3 if和switch的适用场景
if适合做区间匹配
switch适合做值匹配
2.4 switch分支的注意事项
1.表达式类型只能是byte,short,int,char,枚举,String这六种,不支持double,float,long
浮点型计算并不精确不适合switch分支,long范围太大没有必要
2.case的值不允许重复,并且只能是字面量不能是变量
3.不能忘记写break,否则会出现穿透现象
2.5 switch的穿透性
如果代码执行到没有写break的case块,执行完后会直接进入下一个case块(不会有任何匹配),直到遇到break结束
因此如果存在多个case分支的功能代码是一样的时候,可以用穿透性把流程集中到同一个中处理,以此来简化代码
package edu.dhu.swtichdemo;
public class switchdemo {
public static void main(String[] args) {
int month=7;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月有31天");
break;
case 2 :
System.out.println("有时候"+month + "月有28天"+"有时候"+month + "月有29天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月有30天");
break;
default:
System.out.println("输入数据有误");
}
}
}
三、循环结构
3.1 for循环
3.2 while循环
什么时候用for什么时候用while:
知道循环的次数用for不然用while
3.3 do..while循环(一定会执行一次循环体)
3.4 死循环和break,continue
死循环一般用于服务器