Java选择结构中的三种if语句

if语句

概念

if语句是单条件分支语句,即根据一个条件来控制程序执行。

语法格式

if (比较表达式) {
 语句体;
 }

执行流程

  1. 先计算比较表达式的值,看其返回值是true还是false
  2. 如果是true,就执行语句体
  3. 如果是false,就不执行语句体

注意事项

  1. 比较表达式无论简单还是复杂,结果必须是boolean类型。
  2. if语句中的{}可以省略不写,但为了增强程序的可读性,最好不要省略。

**if-else语句

概念

if-else是单条件分支语句,即根据一个条件来控制程序执行。

语法格式

if (比较表达式) {
 语句体1;
 }
 else {
 语句体2;
 }

执行流程

  1. 先计算表达式的值,看其返回值是true还是false
  2. 如果是true,就执行语句体1
  3. 如果是false,就执行语句体2

练习题

获取两个数据中的最大值
源代码如下:

import java.util.Scanner;
public class demo9 {
    public static void main(String[] avgs) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个整数:");
        int x = sc.nextInt();
        int y = sc.nextInt();
        if (x > y) {
            System.out.println("max = " + x);
        }
        else
        {
            System.out.println("max = " + y);
        }
    }
}

**if-else if-else语句(级联语句)

概念

if-else if-else语句是多条件分支的语句

语法格式

if (比较表达式1) {
 语句体1;
 } else if (比较表达式2) {
 语句体2;
 } else if (比较表达式3) {
 语句体3;
 }
 …
 else{
 语句体n+1;
 }

执行流程

  1. 先计算比较表达式1,看其返回值是true还是false
  2. 如果是true,则执行语句体1,if语句结束
  3. 如果是false,接着计算比较表达式2,看其返回值是true还是false
  4. 如果是true,就执行语句体2,if语句结束
  5. 如果是false,接着计算比较表达式3,看其返回值是true还是false
  6. 如果都是false,就执行语句n+1

练习题

使用if语句的嵌套获取三个数据中的最大值
源代码如下:

import java.util.Scanner;

public class demo11 {
    public static void main(String[] avgs) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入三个数据:");
        int x = sc.nextInt();
        int y = sc.nextInt();
        int z = sc.nextInt();
        if (x > y) {
            if (x > z) {
                System.out.println("最大值是:" + x);
            } else {
                System.out.println("最大值是:" + z);
            }

        } else {        //y<=x
            if (y > z) {
                System.out.println("最大值是:" + y);
            }else {
                System.out.println("最大值是:" + z);
            }
        }
    }
}

**if语句和三元运算符的区别

三元运算符实现的,都能采用if语句实现,反之不成立

面试题

  • 什么时候if语句实现不能用三元运算符改进?
  • 当if语句控制的操作是一个输出语句时,不能用三元运算符改进
    原因:三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。