Java选择语句
选择结构包括if语句与switch语句
if语句分为:if;if,else;if,else if ,else三种结构。
if语句
if结构
格式:
if(关系表达式){
语句体
}
执行流程:
1.先判断关系表达式;
2.如果关系表达式符合要求,那么就执行语句体;
3. 如果不符合要求,那么不执行语句体;
4. 执行后面的其他代码;
public static void main(String [] args){
int a=1;
int b=2;
if(a+b==3){
//先判断a+b是否等于3
//如果a+b等于3的话,执行if语句体里的语句块
System.out.println("先执行if语句的内容");
}
System.out.println("然后执行if语句块外面的内容");
if(a+b==4){
//先判断a+b是否等于4
//因为a+b的值不等于4,所以下下面这个语句块不会执行
System.out.println("这是不满足条件的if语句块");
}
}
例如1:(判断当天星期几)
public static void main(String[] args) {
var d = new Date();
int day = d.getDay();
if (day == 0) {
System.out.println("星期日");
}
if (day == 1) {
System.out.println("星期一");
}
if (day == 2) {
System.out.println("星期二");
}
if (day == 3) {
System.out.println("星期三");
}
if (day == 4) {
System.out.println("星期四");
}
if (day == 5) {
System.out.println("星期五");
}
if (day == 6) {
System.out.println("星期六");
}
}
if,else结构
if(关系表达式){
语句体 1
} else{
语句体2
}
执行流程:
1.先判断关系表达式;
2.如果关系表达式符合要求,那么就执行语句体1;
3. 如果不符合要求,那么执行语句体2;
4.然后再继续执行其他代码;
public static void main(String [] args){
int a=1;
int b=2;
if(a+b==3){
//先判断a+b是否等于3
//如果a+b等于3的话,执行if语句体里的语句块1
System.out.println("执行语句体1的内容");
}else {
//因为语句体1符合要求,所以语句体2就不会继续执行了
System.out.println("执行语句体2的内容");
}
//继续往下执行
System.out.println("然后执行if语句块外面的内容");
if(a+b==4){
//先判断a+b是否等于4
//因为a+b的值不等于4,所以下面这个语句块3不会执行
System.out.println("执行语句体3的内容");
}else{
//因为语句体3不符合要求,所以会执行语句体4
System.out.println("执行语句体4的内容");
}
}
例如2:(判断当天星期几)
public static void main(String [] args){
var d = new Date();
int day = d.getDay();
if (day == 1) {
System.out.println("星期一");
} else if (day == 2) {
System.out.println("星期二");
} else if (day == 3) {
System.out.println("星期三");
} else if (day == 4) {
System.out.println("星期四");
} else if (day == 5) {
System.out.println("星期五");
} else if (day == 6) {
System.out.println("星期六");
} else {
System.out.println("星期日");
}
}
if,else if,else结构
格式:if(关系表达式1){
语句体 1
} else if(关系表达式2){
语句体2
}else{
语句体3
}
执行流程:
1.先判断关系表达式1;
2.如果关系表达式1符合要求,那么就执行语句体1;
3.如果不符合要求,那么继续判断关系表达式2是否符合要求如果符合要求,执行语句体2;
4.如果关系表达式1,2都不符合要求,那么执行和关系表达3;
5.然后继续执行;
public static void main(String [] args){
int a=1;
int b=2;
if(a+b==3){
//先判断a+b是否等于3
//如果a+b等于3的话,执行语句体1的内容
System.out.println("执行语句体1的内容");
//如果上面的a+b==3不符合要求,那么判断a+b==4是否符合要求
{else if(a+b==4){
//如果上面的a+b==4符合要求,那么执行语句体2的内容
System.out.println("执行语句体2的内容");
}else {
//如果a+b==3,a+b==4都不符合要求,那么执行语句体3的内容
System.out.println("执行语句体3的内容");
}
//继续往下执行
System.out.println("然后执行if语句块外面的内容");
}
可以参考“例如2”
switch语句
格式:
switch(表达式){
case 常量a :语句体1;
break;
case 常量b : 语句体2;
break;
//多个case可以共用一个语句体,具体参考下方例4.
............
default: 语句体n ;
break;
}
例如4:(判断月份有几天)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入年 :");
int year = sc.nextInt();
//int定义,=号赋值
System.out.println();
System.out.print("请输入月 :");
int month = sc.nextInt();
//定义并赋值
var c = Calendar.getInstance();
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
days = year % 400 == 0 || year % 4 == 0 && year % 100 != 0 ? 29 : 28;
LocalDate now = LocalDate.of(year, month, 1);
days = now.isLeapYear() ? 29 : 28;
break;
default:
days = 0;
break;
}
System.out.printf("%d年%d月有%d天", year, month, days);
}