目录
一、if选择结构
1.1 if单分支结构
语法结构:
if(条件){
代码块
}
执行规律:
如果条件为true,执行{}里的代码块,执行完代码块之后,继续执行{}后面的代码
如果条件为false,则跳过if选择结构,执行{}后面的代码
条件最终结果应该是布尔值,要么为true要么为false
1.2 if -else双分支结构
语法结构:
if(条件){
//代码块1
}else{
//代码块2
}
执行规律:
如果条件为true,执行代码块1,执行完代码块1后,结束整个if-else结构,继续往后执行if-else结构后面的代码。
如果条件为false,执行代码块2,执行完代码块2后,结束整个if-else结构,继续往后执行if-else结构后面的代码。
1.3 多分支if选择结构
多分支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,如果条件3位true,则执行代码块3,执行完代码块3,结束整个if-else-if结构,执行if-else-if结构后面的代码
如果条件3为false,则继续......
如果所有条件都不满足,则执行else{}里的代码块n
注意:
(1)所有的条件都为布尔值
(2)else if可以有很多个
(3)else是可以省略不写,当所有的条件都不满足,并且没有else的时候,则整个if-else-if结构里代码的都不会执行
1.4 嵌套if选择结构
语法结构:
if(条件){
if(条件){
代码块
}else if(条件){
代码块
}else{
代码块
}
}else{
代码块
}
嵌套if选择结构即是一个if选择结构中包含另外的一个或多个if选择结构。
应用:用if嵌套循环来判断用户输入的三条边是什么样式的三角形
package com.test;
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请依次输入三条边:");
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
if(a+b>c && a+c>b && b+c>a){
if(a==b && a==c && b==c){
System.out.println("这是一个等边三角形");
}else if(a==b || a==c || b==c){
System.out.println("这是一个等腰三角形");
}else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
System.out.println("这是一个直角三角形");
}else{
System.out.println("这是一个普通三角形");
}
}else{
System.out.println("这不是一个三角形");
}
}
}
二、switch选择结构
switch选择结构:
语法结构:
switch(表达式){
case 常量1:
//语句1
break;
case 常量2:
//语句2
break;
case 常量3:
//语句3
break;
..........
case 常量n:
//语句n
break;
default:
//语句m;
break;
}
执行规律:
根据表达式的值去匹配case后面的常量值,匹配上了就执行对应的语句,执行完对应语句后,执行break,结束整个switch结构,继续往下执行switch选择结构之后的代码
如果表达式的值与所有的常量值都不匹配,就执行default里面的语句,执行完以后执行break退出整个switch选择结构、
注意:
1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7及以后支持)
2)case后面的常量值不能相同
3)default语句可以省略不写。如果写上表示表达式的值与所有常量值不匹配,就执行default里的语句。default语句可以写在任意位置,一般写在switch的末尾位置
4)switch选择结构只能处理等值判断的情况
5)break的作用是结束整个switch选择结构,如果缺少,代码会继续向下执行,执行下一个case里的语句,这种现象称之为“case穿透”现象。case穿透现象可以合理使用
case穿透现象的应用:用户键盘输入月份,控制台输出对应季节
当输入对应季节月份时,前面的月份可以不输出,到最后对应月份时再输出,此程序借助case穿透现象可大幅度缩短代码量。
package com.test;
import java.util.Scanner;
public class Test17 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入月份:");
int month = sc.nextInt();
switch(month){
case 1: case 2: case 12:
System.out.println("现在是冬天");
break;
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;
default:
System.out.println("输入月份错误");
break;
}
}
}