乐趣区

关于if:条件分支if和else的使用详解

程序构造没什么好讲的,就是从上到下的写代码,所以接下来,壹哥就间接带各位来学习分支构造里的条件分支。咱们在后面说过,分支构造,或者叫做条件分支,其实有两种状况。一种是 if…else… 类型的条件分支,一种是 switch…case… 类型的条件分支,明天咱们先来学习 if 和 else 的应用。

1、if 根本语法

在 Java 代码中,如果咱们要依据某个条件来决定是否执行一段代码,就能够思考应用 if 语句。if 语句的根本语法是:

<code class="language-plaintext hljs">if(条件表达式){// 满足条件时要执行的语句} </code>

在下面的语法中,会依据 if(条件表达式)里的计算结果 (true 或者 false),由 JVM 决定是否执行{} 里的代码块。如果为 true,就执行,否则就不执行。

2、if 的单分支语句

首先咱们通过一个简略的需要,来学习 if 的单分支语句。所谓的单分支语句,就是说只有一种判断状况,条件为真就执行,否则就不执行。比方这个需要:“如果你年满 18 岁,就能够攒劲的节目”。

<code class="language-plaintext hljs">publicclassDemo01 {publicstaticvoidmain(String[] args) {
        // if 语句
        
        // 案例 1:如果年龄大于等于 18 岁,就可以看攒劲的节目了
        System.out.println("请输出你的年龄");
        
        // 获取 Scanner 对象
        Scanner sc=new Scanner(System.in);
        // 获取年龄
        int age = sc.nextInt();
        // 如果语句块 {} 外面只有一条执行语句,{}能够省略,但倡议保留。if(age >= 18){System.out.println("本节目只对成年人凋谢,未成年人请在父母陪同下观看,节目正在缓冲......");
        }

        // 案例 2:如果身高大于 180,且体重小于 180,就能够当模特        
        System.out.println("请输出你的身高");
        int height = sc.nextInt();
        System.out.println("请输出你的体重");
        int weight = sc.nextInt();
        
        // 条件表达式中,能够联合之前学习过的逻辑运算符 // 采纳短路与 &&,提高效率
        if(height > 180 && weight < 180){System.out.println("祝贺你,能够当模特了");
        }
    }

}
</code>

另外如果 {} 语句块外面只有一条执行语句,{}能够省略,但倡议保留。因为如果咱们采纳缩进的格局,很容易把前面的语句都看成是 if 语句的执行块,所以不举荐疏忽花括号的写法。

单分支语句应答的状况是很简略的,在理论开发中可能会很简单,这就须要应用多分支语句来进行解决。

3、if 的多分支语句

3.1 if…else 构造

if…else… 构造会依据条件表达式的后果进行判断,当表达式的后果为 true,则执行语句块 A;否则执行 else 前面的语句块 B。根本语法结构如下:

<code class="language-plaintext hljs">if(逻辑条件){// 满足逻辑条件执行的代码}else{// 不满足逻辑条件执行的代码}</code>

案例如下:

<code class="language-plaintext hljs">publicclassDemo01 {publicstaticvoidmain(String[] args) {
        // if 多分支语句
        
        Scanner sc=new Scanner(System.in);
        
        // 案例:如果用户名为 admin、明码为 123456,就跳转到首页,否则跳转到登录页面
        System.out.println("请输出用户名");
        String username = sc.next();
        System.out.println("请输出明码");
        String password = sc.next();

        //equals()比拟办法
        if("admin".equals(username) && "123456".equals(password)){System.out.println("跳转首页");
        }else{System.out.println("跳转登录页面");
        }  
    }

}</code>

咱们要留神,在 java 中,”==” 比拟的是两个对象的内存地址是否雷同,String 类中的 equals()办法比拟的是内容是否雷同。如果是根本数据类型,咱们能够应用 == 进行比拟;而对于 String 字符串,个别是应用 equals()办法进行比拟。

另外咱们在应用 equals()办法进行比拟时,要采纳相似 ”admin”.equals(username)的写法,而不要采纳 username.equals(“admin”)的写法。因为 username 对象的值有可能为 null,这样就可能会产生 NullPointerException 异样。

3.2 if 多分支

if 多分支就是能够利用多个 if … else if …else… 进行串联。多分支能够依据多个条件表达式的后果进行判断:

● 如果条件表达式 1 的后果为 true,则执行语句块 1;否则去判断条件表达式 2;

● 如果条件表达式 2 的后果为 true,则执行语句块 2,否则去判断条件表达式 3;

● ….

● 如果所有的条件表达式后果都为 false,则执行语句块 N +1;

● else 是可选的,依据须要能够省略。

if 多分支的语法结构如下:

<code class="language-plaintext hljs">if(逻辑条件 1){// 满足逻辑条件 1 执行的代码}else if(逻辑条件 2){// 暗藏条件(不满足条件 1) 满足逻辑条件 2 执行的代码 
}else if(逻辑条件 3){// 暗藏条件(不满足条件 1、2) 满足逻辑条件 3 执行的代码 
}else{// 不满足以上所有逻辑条件执行的代码}</code>

需要案例:请你依据手上的资金抉择购买的手机品牌。如果你手里的钱大于 10000,就买个苹果;如果大于 7000, 就买个华为;如果大于 5000,就买个小米;如果大于 3000,就买个诺基亚;否则,乖乖地去打公共电话。

<code class="language-plaintext hljs">publicclassDemo01 {publicstaticvoidmain(String[] args) {
        // if 多分支语句
        
        Scanner sc=new Scanner(System.in);
        
        // 请你依据手上的资金抉择购买的手机品牌。如果你手里的钱大于 10000,就买个苹果;// 如果大于 7000, 就买个华为;如果大于 5000,就买个小米;如果大于 3000,就买个诺基亚;// 否则,乖乖地去打公共电话。System.out.println("请输出余额");
        int money = sc.nextInt();
        if(money > 10000){System.out.println("苹果手机");
        }elseif(money > 7000){ //money <= 10000
            System.out.println("华为手机");
        }elseif(money > 5000){System.out.println("小米手机");
        }elseif(money > 3000){System.out.println("诺基亚手机");
        }else{System.out.println("打公共电话");
        }
    }

}</code>

大家要留神,咱们在串联应用多个 if 时,要特地留神判断程序和边界条件的判断。

  1. if 嵌套

if 嵌套的语法结构如下:

<code class="language-plaintext hljs">if(逻辑条件 1){if(逻辑条件 2){// 满足逻辑条件 1 且满足条件 2 执行的代码}else{// 满足逻辑条件 1 但不满足条件 2 执行的代码} 
 }else{// 不满足逻辑条件 1 执行的代码}
</code>

需要案例:学校举办跑步较量,如果问题在 15 秒以内,能够进入决赛,男的进入男子组决赛,女的进入女子组决赛。

<code class="language-plaintext hljs">publicclassDemo01 {publicstaticvoidmain(String[] args) {
        // if 多条件嵌套
        Scanner sc=new Scanner(System.in);
        
        // 学校举办跑步较量,如果问题在 15 秒以内,能够进入决赛,男的进入男子组决赛,女的进入女子组决赛
        System.out.println("请输出你的较量问题");
        double score = sc.nextDouble();
        if(score < 15){System.out.println("请输出你的性别");
            String sex = sc.next();
            if("男".equals(sex)){System.out.println("祝贺进入男子组");
            }else{System.out.println("祝贺进入女子组");
            }            
        }else{System.out.println("很遗憾你被淘汰了!!!");
        }
    }

}
</code>
退出移动版