为了账号安全,请及时绑定邮箱和手机立即绑定

具有字符串错误输出的开关语句

具有字符串错误输出的开关语句

www说 2022-09-22 10:41:22
我遇到了这个基本问题,其中开关大小写与字符串一起使用。Break 语句不在案例之间使用,但为什么即使它与案例字符串不匹配,它也会转到所有案例?所以我很好奇为什么输出是3而不是1? public static void main(String [] args)      {        int wd=0;        String days[]={"sun","mon","wed","sat"};        for(String s:days)        {          switch (s)          {          case "sat":          case "sun":            wd-=1;            break;          case "mon":            wd++;          case "wed":            wd+=2;          }        }        System.out.println(wd);      }
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

你没有 在末尾,所以值也递增 2break;case "mon"


这是你没想到的,流动:


0    -1   -1   +1+2  +2 = 3

^     ^    ^   ^     ^

init sat  sun  mon  wed 

添加如下中断将得到输出 1


case "mon":

  wd++;

  break;


查看完整回答
反对 回复 2022-09-22
?
UYOU

TA贡献1878条经验 获得超4个赞

在“sat”和“mon”的案例末尾没有。这意味着当一个元素匹配“sat”和“mon”时,它将执行该案例中包含的代码,但随后落入下一个案例。break;case


当到达 时,它会从开关块中断开。这将停止在块内执行更多的代码和用例测试。break


在这种情况下。当它测试“sat”和“mon”时,它看不到 ,因此继续测试。break


0   -1    0    2    4    3

^    ^    ^    ^    ^    ^

    sun  mon  mon  wed  sat


查看完整回答
反对 回复 2022-09-22
  • 2 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号