在Java中条件的判断语句目前有两种if语句和switch语句。
简单的if语句
格式:
if( 条件表达式 ){
代码块
}
当条件表达式的结果为true时执行if大括号里的代码块,否则跳过
if…else语句
格式:
if(条件表达式){
代码块1;
}else{
代码块2;
}
当条件表达式的结果为true时执行if大括号里的代码块1,否则执行else大括号里的代码块2。
if…else if…else
if(条件表达式1){
代码块1
}else if(条件表达式2){
代码块2
}else{
代码块3
}
当条件表达式1的结果为true时执行代码块1,否则再判断条件表达式2是否成立,如果成立则执行代码块2,条件表达式都不成立,执行代码块3。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a,b;
//Scanner是用来获取在控制台输入的数据
Scanner input = new Scanner(System.in);
a = input.nextInt();
input.nextLine();
b = input.nextInt();
if (a == b){
System.out.println(a + " == " + b);
}else if (a < b){
System.out.println(a + " < " + b);
}else{
System.out.println(a + " > " + b);
}
}
}
当判断语句的代码块中只有一条语句时可以选择省略{}
例如上面案例的代码可以修改成这样:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a,b;
Scanner input = new Scanner(System.in);
a = input.nextInt();
input.nextLine();
b = input.nextInt();
if (a == b)
System.out.println(a + " == " + b);
else if (a < b)
System.out.println(a + " < " + b);
else
System.out.println(a + " > " + b);
}
}
在Java的运算符中有一个三目运算符的作用和if…else的作用一般 条件表达式?语句1:语句2;
举个栗子:b = a > 0 ? (a + b) : -a;
这条语句就等于
if(a > 0){
b = a + b;
else{
b = -a;
}
需要注意的是三目运算符必须有一个返回值
,并且语句只能有一条。
if语句是可以嵌套使用的,举个栗子:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int year;
Scanner input = new Scanner(System.in);
year = input.nextInt();
if (0 == year % 4){
if (0 == year % 100){
if (0 == year % 400){
System.out.println("输入的年份是闰年");
}else{
System.out.println("输入的年份不是闰年");
}
}else{
System.out.println("输入的年份是闰年");
}
}else{
System.out.println("输入的年份不是闰年");
}
}
}
上面代码的执行流程
这种写法让代码变长,我们可以将所有条件整合在一起进行简化:
if (0 == year % 400 && 0 == year % 100 || 0 == year % 4){
System.out.println("输入的年份是闰年");
}else{
System.out.println("输入的年份不是闰年");
}
格式:
switch (表达式值){
case 0:
代码块1
break;
case 1:
代码块2
break;
case 2:
代码块3
break;
......
case n:
代码块n
break;
default:
代码块n+1
break;
}
switch语句是一个条件选择语句相当于多个简单的if语句
switch首先计算参数的值,如果参数值与case后的常量值相等,则执行该case下的代码块。
如果没有写break那么会执行switch中的所有语句
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a;
Scanner input = new Scanner(System.in);
a = input.nextInt();
switch (a){
case 0:
System.out.println("这里是:case 0");
case 1:
System.out.println("这里是:case 1");
case 2:
System.out.println("这里是:case 2");
case 3:
System.out.println("这里是:case 3");
default:
System.out.println("这里是:default");
}
}
}
因为Java是顺序执行的,所以上面的代码执行后会将switch中的语句全部执行,输入0,结果如下:
如果前面的所有条件都不成立,就会执行default下的代码块,default是可以省略不写的
case 5.5
if和switch语句都可以实现多条件判断,但if语句主要是对布尔表达式、关系表达式进行判断,而switch主要是对常量值进行判断。