这个代码问题在哪里 我找了很久都找不出??求大神解答

来源:4-6 Java条件语句之 switch

七犯上场

2015-05-27 00:05

public class HelloWorld {
    public static void main(String[] args) {
  char today='日';
  switch(today)
        {
      case '一':
         case '三':
         case '五':
             System.out.println("吃包子");
         case '二':
         case '四':
         case '六':
            System.out.println("吃油条");
        case '日':
            System.out.println("吃主席套餐");
  }
    }
}

写回答 关注

11回答

  • 头像已舔屏
    2015-05-31 08:48:55

          case '二'://“:”为中文字符,用编译器看看就出来了http://img.mukewang.com/556a5a6d0001b93d03540102.jpg

  • qqtjh
    2015-05-29 13:49:57

     如果不break会执行满足这个case之后的其他case的语句直达switch结束或者遇到break你的today是设置死的。这个代码 只能输出case '日':

                System.out.println("吃主席套餐");

    你会报错是因为:的原因

  • 米雪321
    2015-05-29 10:07:01
    1. 没有break,无法跳出循环

    2. 周一至周四,可以输出吃饭之类

  • sends
    2015-05-28 22:35:39

    这个程序你还可以改一下,输入的不是星期几,那就不吃饭了

  • Dream_chen
    2015-05-28 20:13:53

    没有break,不能跳出循环,另外写代码要规范一点,不能写成辣样子

  • 低调的小夔
    2015-05-27 09:37:37

    没有break怎么跳出循环

  • Absolute_Duo
    2015-05-27 00:19:37

    当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;

    一般来说都要写break的为了防止发生上述的情况而出问题你可以把char today='日';改为char today='一';试试就会发现有问题了

  • 七犯上场
    2015-05-27 00:18:40

    知道了  谢谢大神

  • Absolute_Duo
    2015-05-27 00:17:46

    不过你的问题不是出在break而是有个case '二':冒号写错了用英文的冒号

    Marlbo...

    眼神犀利

    2015-05-28 21:24:17

    共 1 条回复 >

  • 七犯上场
    2015-05-27 00:15:36

    break 不是可以不用写的么??

  • Absolute_Duo
    2015-05-27 00:13:58

    你忘记写break了

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1167354 学习 · 18677 问题

查看课程

相似问题