前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaNote[004] - 选择结构

JavaNote[004] - 选择结构

作者头像
Sam Gor
发布2020-06-04 15:49:08
2730
发布2020-06-04 15:49:08
举报
文章被收录于专栏:SAMshareSAMshare

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吧(一般情况下)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 if-else双选择结构
  • 3 if-else if-else多选择结构
  • 4 switch多选择结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档