一.基本if选择结构(单分支if选择结构)
语法结构:
if(条件){
代码块1
}
代码块2
如果条件为true,则执行{}里的代码块1,执行完代码块1之后,继续往下执行{}后面的代块2
如果条件为false,则直接结束if选择结构,继续往下执行{}后面的代码块2
注意:
1.条件只能是布尔值,不管这么条件写的多么的简单还是多么的复杂,条件值都只能是true或者false
2.如果代码块1只有一行语句,{}可以不写,建议不要省略
public class Demo01 {
public static void main(String[] args) {
/*
* 需求:张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?
*/
//创建键盘输入对象,获取张浩的Java成绩
Scanner sc = new Scanner(System.in);
System.out.println("请输入张浩的Java成绩:");
double score = sc.nextDouble();
//如果成绩>90,获得奖励
if(score>90){
System.out.println("老师奖励IPhone6s");
System.out.println("好好学习,天天向上");
}
System.out.println("程序执行完毕");
}
}
双分支if选择结构:if-else结构
语法结构:
if(条件){
代码块1;
}else{
代码块2;
}
代码块3;
执行规律:
如果条件为true,执行代码块1,执行完代码块1后结束整个if-else结构,执行if-else结构后面的代码块3
如果条件为false,执行代码块2,执行完代码块2后结束整个if-else结构,执行if-else结构后面的代码块3
注意:
1)条件不管多么的简单还是多么的复杂,都只能是布尔值,要么为true,要么为false
public static void main(String[] args) {
/*
* 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s 否则老师就罚他蹲马步
*
* 这个需求可以使用if-else双分支选择结构来实现
*/
// 创建键盘输入对象,获取张浩的Java成绩
Scanner sc = new Scanner(System.in);
System.out.println("请输入张浩的Java成绩:");
double score = sc.nextDouble();
if(score>90){
System.out.println("老师奖励iPhone6s");
}else{
System.out.println("老师罚他蹲马步");
}
System.out.println("程序执行完毕");
}
}
多分支if选择结构(if-else-if选择结构)
语法结构:
if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}.....
}else{
代码块n;
}
执行规律:
先判断条件1,如果条件1为true,则执行代码块1,执行完代码块1之后,结束这个if-else-if结构,继续往下执行if-else-if结构之后的代码
如果条件1为false,继续往下判断条件2,如果条件2为true,执行代码块2,执行完代码块2之后,结束这个if-else-if结构,继续往下执行if-else-if结构之后的代码
如果条件2为false,继续往下判断条件3,.......
如果所有的条件都为false,就执行else里面的代码块n,执行完代码块n后,结束这个if-else-if结构,继续往下执行if-else-if结构后面代码
注意事项:
1)所有的条件不管多么简单还是多么复杂,都只能是布尔值,要么为true,要么为false
2)else可以省略不写,如果所有的条件都不满足,也没有else,则整个if-else-if结构都不会执行
3)if-else-if结构中的条件,如果下面的条件会引用上面条件的潜在值,条件是有顺序,严格的条件在上面.
public class Demo02 {
public static void main(String[] args) {
/*
* 需求:
* 对学员的考试成绩评测
* 成绩>=80 :良好
* 成绩>=60 :中等
* 成绩<60 :差
*
* 使用多重if选择结构实现
*
*/
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的考试成绩:");
double score = sc.nextDouble();
if(score>=80){
System.out.println("良好");
}else if(score>=80){
System.out.println("中等");
}else{
System.out.println("差");
}
System.out.println("继续努力.....");
}
}
2.switch-case选择结构
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
2.说明:
① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构
末尾结束为止。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
③ switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
④ case 之后只能声明常量。不能声明范围。
⑤ break关键字是可选的。
⑥ default:相当于if-else结构中的else.
default结构是可选的,而且位置是灵活的。
3.如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
4.break在switch-case中是可选的