专栏首页SAMshareJavaNote[004] - 选择结构

JavaNote[004] - 选择结构

1 if单选择结构

这个其实很简单了,其语法就是if(布尔表达式) {语句块};

public class TestIf {
    public static void main(String[] args) {
        double d = Math.random(); //返回【0,1)之间的随机数
        System.out.println(d);

        int h = (int)(6*Math.random()+1);
        System.out.println(h);
        if(h<=3){
            System.out.println("小");
        }
    }
}

2 if-else双选择结构

这个也很好理解,其语法结构为:if(布尔表达式){语句块1} else {语句块2}

/**
 * 测试if-else双选择结构
 */
public class TestIfElse {
    public static void main(String[] args) {
        int h = (int)(6*Math.random()+1);
        System.out.println(h);
        if(h<=3){
            System.out.println("小");
        }else {
            System.out.println("大");
        }
    }
}

3 if-else if-else多选择结构

这个在实战中用的会比较多了,具体的语法结构如下:

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

简单有一个小栗子来熟悉一下语法结构:

public class TestIfElseIfElse {
    public static void main(String[] args) {
        int weekday = (int)(7*Math.random()+1);
        System.out.println("今天是星期"+weekday+" ,我们晚饭吃 ");
        if(weekday==1){
            System.out.println("牛肉!");
        } else if(weekday==2){
            System.out.println("鸡肉!");
        } else if(weekday==3){
            System.out.println("鱼肉!");
        } else if(weekday==4){
            System.out.println("猪肉!");
        } else if(weekday==5){
            System.out.println("狗肉!");
        } else {
            System.out.println("素,因为周末不吃肉!");
        }
    }
}

4 switch多选择结构

这个和多个if-else 的效果差不多,但是一般来说switch只用于当布尔表达式是等值判断的情况,而当布尔表达式为区间判断的时候,一般还是用if-else多选择结构来完成。大家可以先看看switch的语法结构:

switch(表达式){
    case 值1:
      语句序列1;
    [break;]
   case 值2:
     语句序列2;
    [break;]
    ......
    [default:
      默认语句;]
}

这里对于新手来说会有一个坑需要注意的,那就是switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句或者是switch的结尾。所以说一般每一个case下的语句序列中,都需要加上break,这样子才是我们一般想要的结果。

我们可以测试一下不加break,会有什么效果:

public class TestSwitch {
    public static void main(String[] args) {
        int month = 1; //+ (int)(12*Math.random()+1);
        System.out.println("月份:"+month);

        switch (month){
            case 1:
                System.out.println("一月份!");
            case 2:
                System.out.println("二月份!");
            case 3:
                System.out.println("三月份!");
            default:
                System.out.println("其他月份!");
                break;
        }
    }
}
/**
 * 月份:1
 * 一月份!
 * 二月份!
 * 三月份!
 * 其他月份!
 */

我还测试了其他的case,得出一个结论就是:break;语句"不是必须要写的",但是如果不写,如果一旦某个case相应的值成功,但内部没有break语句,那么将会无条件(不再进行case匹配)的继续向下执行其它case中的语句,直到遇到break;语句或者到达switch语句结束。

所以,还是建议在每个case 的内部写上break吧(一般情况下)

本文分享自微信公众号 - SAMshare(gh_8528ce7b7e80),作者:Samshare

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaNote[002] - 基本数据类型

    char类型用来表示在Unicode编码表中的字符,它占2个字节,可允许有65535个字符,通常用从 '\u0000' 到 '\uFFFF'之间的十六进制值来表...

    Sam Gor
  • JavaNote[005] - 循环结构

    这个算是一个比较高级一点的用法了,就是在一个循环语句里再嵌套一个循环语句。这个其实也没什么,可以通过看几个小栗子来理解一下。

    Sam Gor
  • 使用PyTorch Lightning自动训练你的深度神经网络

    对使用PyTorch Lightning的训练代码和原始的PyTorch代码进行了对比,展示了其简单,干净,灵活的优点,相信你会喜欢的。

    Sam Gor
  • Java基础-03(02).总结运算符、键盘录入、if语句

    (3)案例: A:比较两个数是否相等 B:获取两个数中的最大值 C:获取三个数中的最大值(if语句的嵌套) D:根据成绩输出对应的等级 E:根据月份...

    Java帮帮
  • 《Monkey Java》课程3.2之练习课

    GitOPEN
  • Java语言中:++a与a++小练习 &与&&小练习 |与||小练习 boolean类型小练习

    --------------------------------------------------- 第一题 int x = 1,y = 1;

    黑泽君
  • 用集合实现登录注册功能

    练习题目如上所示,要求如下: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。

    roobtyan
  • 雷锋教你阿里面试题

    看到结果。我们的结论完全正确,有的面试官也可能问一下loadClass在什么时候执行静态代码块呢,其实当执行newInstance()时候才会执行静态代码块。

    小土豆Yuki
  • Google Guava 集合工具类

    >注:懒视图意味着如果还没访问到某个iterable中的元素,则不会对它进行串联操作

    架构探险之道
  • Spring中的AOP——在Advice方法中获取目标方法的参数

    访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增...

    林老师带你学编程

扫码关注云+社区

领取腾讯云代金券