zoukankan      html  css  js  c++  java
  • Java 流程控制 之 分支结构——条件判断语句

    一、判断语句

      1、判断语句1-- 单 if 语句(单分支结构)

        语法格式:

    if(条件表达式){
      语句体;
    }

         执行流程:

        •  首先判断条件表达式看其结果是 true 还是 false;
        •     如果是 true 就执行语句体;
        •     如果是 false 就不执行语句体。

        流程图:

      

        Tips:当 if 后面只有一条语句时,可以省略 “{}”,但为了增强程序的可读性最好不要省略。 

      2、判断语句2-- if...else 语句(标准的 if 语句)(双分支结构)

        语法格式:

    if(关系表达式) {
      语句体1;
    }else {
      语句体2;
    }
    

        执行流程:

        •   首先判断关系表达式看其结果是 true 还是  false; 
        •      如果是 true 就执行语句体1; 
        •     如果是 false 就执行语句体2;

          流程图:

      

      3、判断语句3 -- if...else if...else 语句(多分支结构)

        语法格式:

    if (判断条件1) {
      执行语句1;
    } else if (判断条件2) {
      执行语句2;
    }
    ...
    }else if (判断条件n) {
      执行语句n;
    } else {
      执行语句n+1;
    }
    

        执行流程:

        •    首先判断关系表达式1 看其结果是 true 还是 false;
        •       如果是 true就执行语句体1;
        •       如果是 false 就继续判断关系表达式2看其结果是 true 还是 false;
        •       如果是 true 就执行语句体 2;
        •       如果是 false 就继续判断关系表达式... 看其结果是 true 还是  false;
        •       .....
        •       如果没有任何关系表达式为 true,就执行语句体 n+1

       流程图: 

      

      4、if 语句和三元运算符的互换

        在某些简单的应用中, 可以使用 if...else 语句和三元运算符互换使用的。这样看起来更简便一些。

       Demo:

     1 public static void main(String[] args) {
     2   int a = 10;
     3   int b = 20;
     4   //定义变量,保存a和b的较大值
     5   int c;
     6   if(a > b) {
     7     c = a;
     8   } else {
     9     c = b;
    10   }
    11   //可以上述功能改写为三元运算符形式
    12   c = a > b ? a:b;
    13 }

    二、选择语句

      1、选择语句 -- switch

        语句格式:

    switch(表达式) {
    case 常量值1:
      语句体1;
      [break;]
    case 常量值2:
      语句体2;
      [break;]
    ...
    default:
      语句体n+1;
      [break;]
    }
    

        执行流程:

        •  首先计算出表达式的值
        •     其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
        •     最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

       流程图:

      

        注意

        a、多个 case 后面的数值不可以重复,切必须是常量值

        b、switch 语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举)(1.5之后),JDK7后可以接收字符串(String)。

        c、switch 语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。

        d、default 语句可以省略,也可以写到任意位置,不一定会写在最后

      2、case 的穿透性

        在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。

       Demo:

     1 public static void main(String[] args) {
     2   int i = 5;
     3 switch (i){
     4   case 0:
     5     System.out.println("执行case0");
     6     break;
     7   case 5:
     8     System.out.println("执行case5");
     9   case 10:
    10     System.out.println("执行case10");
    11   default:
    12     System.out.println("执行default");
    13   }
    14 }

         上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接 运行完整体switch。

         Tips:在使用 switch 语句时,写上  break 语句是非常有必要的。

  • 相关阅读:
    python函数应用
    python文件操作
    设计模式大杂烩(24种设计模式的总结以及学习设计模式的几点建议)
    (二十四)解释器模式详解
    (二十三)原型模式详解(clone方法源码的简单剖析)
    (二十二)访问者模式详解(伪动态双分派)
    (二十一)状态模式详解(DOTA版)
    (二十)职责链模式详解(都市异能版)
    (十九)组合模式详解
    (十八)享元模式详解(都市异能版)
  • 原文地址:https://www.cnblogs.com/niujifei/p/11231908.html
Copyright © 2011-2022 走看看