if语句用布尔表达式和布尔值作为条件判断的条件,选择条件适用于带有逻辑和关系的计算。

if语句

语法结构:

if(条件表达式){
   语句块;
}
  1. 条件表达式 : 可以是任意的逻辑表达式,但最后返回的是一个布尔值,也可以是一个布尔值或者赋有布尔值的变量,当条件为真时,就执行下面的语句块,条件为假时,不执行里面的语句块。
  2. 语句块:语句块是在条件表达式为真时才会被执行,可以执行多条语句,如果只执行一条,则可以省略if语句的大括号,但从编程规范来看,不要省略大括号,造成代码的可读性变差。

例1
期末考试小明考了67分,满分100,0-59算不及格,60-89算良好,90-100算优秀,编写Java程序,输出小明成绩的排行。

public class dome2{
	public static void main(String[] args) {
		int a=90; //小明的成绩
		if(a>=0&&a<=59) {
			System.out.println("不及格");
		}
		if(a>=60&&a<90) {
			System.out.println("良好");
		}
		if(a>=90&&a<=100)
			System.out.println("优秀");
	}
}

if-else语句

if语句只能在满足条件的情况下执行语句块,不满足时直接绕过不执行,if-else语句在条件不满足的情况下不会执行if语句里面的语句块,就会执行else里面的语句块,

语法结构:

if(条件表达式){
     语句块1;
 }else{
   语句块2;
   }

注释:当条件表达式为真时就会执行语句块1,语句块2就不执行,当条件为假 时, 语句块1就不执行,则会执行语句块2.

例2
判断2021年是不是闰年,判断方法:能被4整除但不能被100整除,或者被400整除,编写Java代码。

public class dome2{
	public static void main(String[] args) {
		int year=2021;
		if((year%4==0&&year%100!=0)||(year%400==0)) {
			System.out.println(year+"是闰年");
		}else {
			System.out.println(year+"不是闰年");
		}
	}
}

if-else if语句

if-else if可以提供多个分支,往往在一些比较复杂的关系逻辑中,一两个分支是没用的,if-else if 相当与if-else的嵌套。

语法结构:

if(表达式1){
    语句块;
 }else if(表达式2){
     语句块;
  }else if(表达式n){
       语句块n;
   }else{
      语句块n+1;
      }

注释:if-else if语句要依次判断表达式的值,只有当某个条件为真时,就执行这个分支语句,当前面所有的分支语句的值都为false时,就执行else里的语句n+1;

例3
比较num1和num2的大小,编写Java程序。

public class dome2{
	public static void main(String[] args) {
		int num1=20,num2=30;
		if(num1>num2) {
			System.out.println("num1>num2");
		}else if(num1<num2) {
			System.out.println("num2>num1");
		}else {
			System.out.println("num1==num2");
		}
	}
}

选择语句的嵌套

上面的这些分支选择语句都可以实现嵌套使用,在一些很繁琐,很长的逻辑表达中,常常可以把一个大的步骤分化成几个小的去做。

语法结构:

if(表达式){
    if(表达式){
         语句块;
      }else{
        语句块;
      }
}else{
  if(表达式){
    语句块;
   }else if(表达式){
       语句块;
   }else{
      语句块;
    }
}

例4
给出一个数字,看它是大于50还是小于50?,再在大于50中是大于等于80还是小于80?.编写Java程序。

public class dome2{
	public static void main(String[] args) {
		int a=90; //定义初始值
		if(a>50) {
			if(a<80) {
				System.out.println(a+"小于80");
			}else {
				System.out.println(a+"大于等于80");
			}
		}else {
			System.out.println(a+"小于50");
		}
	}
}