控制语句 - 选择结构

返回目录

if语句

    • if单选择结构:对布尔表达式进行一次判定,若判定为true,则执行 {} 中的语句块,否则跳过该语句块。
      public static void main(String[] args) {
        int a = (int) (6*Math.random())+1; //通过函数Math.random()产生一个随机数
          if (a<=3){ //如果a<=3为true,则输出语句块中的语句
            System.out.println("手气不太好啊,分数只有: " + a); //如果如果a<=3为true,则输出这条语句
          }
          if (a>3 && a<=5){ //如果a>3 && a<=5为true,则输出语句块中的语句
            System.out.println("手气不错,获得分数: " + a); //如果如果a>3 && a<=5为true,则输出这条语句
          }
          if (a==6) { //如果a==6,则输出语句块中的语句
            System.out.println("爆炸人品,获得分数: " + a); //如果如果a==6,则输出这条语句
          }
      }
    • if双选择结构:当布尔表达式为true时执行语句块1,否则执行语句块2(也就是else部分)。

      public static void main(String[] args) {
        double r = 4 * Math.random(); // 随机产生[0.0 , 4.0]区间的半径,并根据半径求圆的面积和周长
        // Math.pow(r , 2) 求半径r的二次方
        // Math.Pi 指的是圆周率
        double area = Math.PI * Math.pow(r , 2); // S=π*r^2 求圆的面积
        double circle = 2 * Math.PI * r; // C=2*πr 求圆的周长
        System.out.println("半径为:" + r);
        System.out.println("面积为:" + area);
        System.out.println("周长为:" + circle);
        if (area <= circle) { //如果area <= circle为true,则输出语句块中的语句
          System.out.println("面积小于等于周长"); //如果如果area <= circle为true,则输出这条语句
        }else { //否则
          System.out.println("面积大于周长"); //否则输出这条语句
        }
      }
    • if多选择结构:当布尔表达式1为true时执行语句块1;否则判断布尔表达式2(else if),当布尔表达式2为true时执行语句块2;否则判断布尔表达式3(else if),当布尔表达式3为true时执行语句块3,否则……;如果1~n个布尔表达式均判定为false时,则执行语句块n+1,也就是else部分。
      public static void main(String[] args) {
        int score = (int)(100 * Math.random()); //生成一个0-100的随机数,定义分数
        System.out.println("成绩: " + score + "分");
        if (score < 60) { //如果分数< 60为true,则输出不及格,否则判断下一个else if
          System.out.println("不及格,再接再厉");
        }else if (score < 90) { //如果分数<90为true,则输出及格,否则判断下一个else if
          System.out.println("及格,继续努力");
        }else if (score < 100) { //如果分数<100为true,则输出好成绩,否则跳过该语句块,执行下面的语句
          System.out.println("好成绩,继续保持");
        }
      }

       

switch语句

    • switch多选择结构:switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任何case值不匹配,则进入default语句(如果存在default语句的情况),如果default不存在则跳过,执行下面的语句。
      switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。
      当布尔表达式是多值判断,可以使用if多选择结构或者switch结构,值过多建议switch结构(更简洁);如果布尔表达式是区间判断,则只能使用if多选择结构。

      // switch语句结构
      switch (表达式){
        case 值1:{
          语句序列;
          [break]; //可选,执行到这里结束switch
        }
        case 值2:case 值3:{ //匹配到值2或3都会执行该语句块内的语句
          语句序列;
          [break];
        }
        default:{
          语句序列;
          [break];
        }
      }
        
      // 例子
      public static void main(String[] args) {
        int month = (int)(1+12*Math.random()); //1-12的随机数代表月份
        System.out.println("输出的月份:" + month);
        // 由case开始,到break结束
        switch(month) { //switch判断month
          case 1:{ //如果month为1,则输出一月份
            System.out.println("当前月份:" + "一月份");
            break; //执行到这里结束
          }
          case 2:case 3:{
            System.out.println("当前月份:" + "二到三月份");
            break;
          }
          case 4:case 5:{
            System.out.println("当前月份:" + "四到五月份");
            break;	
          }
          case 6:case 7:{
            System.out.println("当前月份:" + "六到七月份");	
            break;
          }
          default:{ //如果以上case没有符合的值,则输出default内的语句块
            System.out.println("当前月份:" + "其他月份");	
            break;
          }
        }
      }