shohoku10837755 2012-04-04 10:09
浏览 209
已采纳

java,能否深入讲讲switch原理:没有break是真,但num也不等于3和default啊?为什么?

[b][color=red]没有break是真,但num也不等于3和default啊?为什么?num=2,为什么还会走case 3和default?[/color]
[/b]

[code="java"]public class SwitchTest
{
public static void main(String[] args)
{
int num = 2;
switch (num)
{
case 1:
System.out.println("小白菜");
case 2:
System.out.println("大白菜");
case 3:
System.out.println("方便面");
default:
System.out.println("什么也不吃");
}
}
}[/code]

  • 写回答

2条回答 默认 最新

  • -量- 2012-04-05 10:05
    关注

    这个问题。。 其实很好

    对于java而言,switch语句有一个特性叫 fallthrough, 就如楼上所说说,条件成立switch开始执行,直到遇到break为。 期间不会再进行case的判断.

    但对于C#而言,则没有这样的特性

    这个特性,有时候是很好用的,但也很危险,看你怎么用 具体讨论可以看

    http://stackoverflow.com/questions/188461/switch-statement-fallthrough-should-it-be-allowed

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名