一 选择结构语句:
1)if系列语句:
a.if语句:
if(表达式){
语句;
}
执行流程:若表达式为true,执行语句;表达式为false,不执行
例如:inta=2;
if(a>1){
System.out.printlnl("aaa");
}
执行结果:aaa
b.if-else语句:
if(表达式){
语句块1;
}
else{
语句块2;
}
执行流程:若表达式为true,执行语句块1;否则,执行语句块2
例如:int b=2;
if(b>3){
System.out.println("bbb");
}
else{
System.out.println("ccc");
}
执行结果:ccc
c.if-else-if语句:
if(表达式1){
语句块1;
}
else if(表达式2){
语句块2;
}
else if(表达式3){
语句块3;
}
......
else if(表达式n){
语句块n;
}
执行流程:
判断表达式1,若为true,执行语句块1;否则判断表达式2,若为true,执行语句2;.....
例如:
int c=4;
if(c<1){
System.out.println("hhh");
}
else if(c>=1&&c<3){
System.out.println("kkk");
}
else if(c>=3){
System.out.println("ooo");
}
执行结果:ooo
2)switch语句:
格式:
switch(表达式){
case 常量值1:
语句1;
break;
case 常量值2:
语句2;
baeak;
...
default:
语句3;
break;
}
注意:
switch后面的数据类型可以是什么类型!
本身能跟的类型:int,byte,short,char
JDK5.0以后:可以根据枚举类型
JDK7以后,可以跟String类型
break:表示中断的意思,遇见后switch语句结束
switch语句的结束条件什么?
1)遇见break结束
2)程序默认执行到末尾
典型题:
package 选择结构语句_switch;
public class SwitchTest {
public static void main(String[] args) {
//版本1:
int x = 2;
int y = 3;
switch(x){//x的值放入switch中
default:
y++;
break;//1)语句break结束
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
}
执行结果: y=4
//版本2:
int a = 2;
int b = 3;
switch(a){
default:
b++; //2)程序默认执行到末尾
case 3:
b++;
case 4:
b++;
}
System.out.println("b="+b);
}
}
执行结果: y=6;
在用case语句时,可以利用case穿透解决一些问题:
public class SwitchTest2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份的值: " );
int month = sc.nextInt() ;
//使用switch语句
switch(month){ //利用case穿透现象
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break ;
case 9 :
case 10:
case 11:
System.out.println("秋季");
break ;
case 12:
case 1:
case 2:
System.out.println("冬季");
break ;
default :
System.out.println("地球没有该月份!");
break ;
}
}
}
运行实例:键盘输入 12
控制台输出冬季