分支结构:
根据条件的成立与否,选择执行方向。
(一)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,进行判断 ............
练习代码:
public static void main(String[] args){
/*
练习题1:
使用分支结构,判断2018是不是闰年
闰年的条件:
条件1: 能被4整除不能被100整除
条件2: 能被400整除
*/
int year = 1900;
if(year%4==0&&year%100!=0||year%400==0){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"不是闰年");
}
/*
练习题2:
小明的分数为89;请输出小明的分数等级
level: 0~59:E
60~69:D
70~79:C
80~89:B
90~99:A
100:S
*/
int score = 89;
if(score<=59){
System.out.println("E");
}else if(score<=69){
System.out.println("D");
}else if(score<=79){
System.out.println("C");
}else if(score<=89){
System.out.println("B");
}else if(score<=99){
System.out.println("A");
}else{
System.out.println("S");
}
/*
练习题3:
判断 num是偶数还是奇数
*/
int num = 55;
if(num%2==0){
System.out.println(num+"是偶数");
}else{
System.out.println(num+"是奇数");
}
}
(二)switch-case分支语句
格式:
switch(整数表达式){
case value1: 代码块1;[break];
case value2: 代码块2;[break];
..........
[default: 代码块n;] //[]表示可有可无
}
整数表达式:即能获得一个整数的表达式。但是jdk1.7版本以后,支持字符串表达式
case后的值与switch()内的结果类型要相同
break:有打断,毁掉,跳出,结束的含义
执行逻辑:
当程序遇到switch时,计算表达式的值,和case后的值进行匹配,然后,执行对应的分支逻辑。如果此分支有break.就结束分支结构,如果此分支没有break,就继续执行下一条分支逻辑,直到遇到break或default或执行完后续的所有分支。
练习代码:
public static void main(String[] args){
int x = 4;
int y = 11;
switch(y/x){
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B"); //验证没有break是否还会向下执行
case 3:
System.out.println("C");
break;
default:
System.out.println("D");
}
System.out.println("end");
}