Java 之条件选择结构
一、if语句
1.if-else
语法规则:与C语言中的相同
if(条件 / 条件表达式)
{
表达式;
}
else
{
表达式;
}
例如:判断一年是闰年还是平年。输入一个年份判断这一年是闰年还是平年。
package com.company;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int year = input.nextInt(); // 输入一个年份
boolean isYear = (year%4==0 && year%100!=0 || year%400==0); // 判断是不是闰年
if(isYear) System.out.println(year + "是闰年");
else System.out.println(year + "是平年");
}
}
2.if-else if-else
语法规则:与C语言中的相同
if(条件 / 条件表达式)
{
表达式;
}
else if(条件 / 条件表达式)
{
表达式;
}
else
{
表达式;
}
例如:判断一个学生的成绩的等级(优秀、良好、及格和不及格)
输入一个数字表示学生的成绩,输出成绩的等级
package com.company;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入成绩:");
int grade = input.nextInt();
if(grade >= 90) System.out.println("优秀");
else if(grade>=70) System.out.println("良好");
else if(grade>=60) System.out.println("及格");
else System.out.println("不及格");
}
}
二、switch语句
语法规则:与C语言中的相同
switch(条件){ // 条件可以为字符串类型
case 常量: // 常量可以为字符串类型
功能表达式;
break;
case 常量:
功能表达式;
break;
...
...
...
case 常量:
功能表达式;
break;
default:
功能语句;
break;
}
例如:输入年月判断这一年这一月有多少天。
package com.company;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int year,month,day=0; // year,month不同初始化,但是day必须初始化
System.out.print("年份:");
year = input.nextInt(); //输入年份
System.out.print("月份:");
month = input.nextInt(); //输入月份
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 2:
day=28;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
default:
System.out.println("输入是数字不合法,只能输入1-12之间的数字");
System.exit(0); // 退出程序
}
if((year%4==0 && year%100!=0 || year%400==0) && month==2) day++;
System.out.println(year + "年" + month + "月有" + day + "天");
}
}
三、switch与多重if对比
相同点: 都是用来处理多分枝条件结构的。
不同点:
switch:等值条件判断 - 条件是有限个。
多重if:判断某个连续区间时的情况。
注意:if语句中的条件只能为boolean类型,不能像C语言和C++里面是一个整型。