default语句java_Java开头带有default子句的switch语句 - java

以下代码打印出1,2,3,如果我更改int i = 3;,它将打印出3。我想知道背后的原因。我使用了调试器,看来i = 3进入情况3并打印出3然后程序终止了。我相信当i=5进入default时,这是否意味着case 1,case 2 and case 3都属于default条款?

int i = 5;

switch(i){

default:

case 1:

System.out.println(1);

case 2:

System.out.println(2);

case 3:

System.out.println(3);

}

编辑:

这个问题来自测试,它要求此代码的输出。所以我试图弄清楚为什么输出是1,2,3,我知道需要break;,但这不是我想要的答案。

java大神给出的解决方案

i == 5与您的任何case不匹配,因此控制权转到了default子句。

default子句为空,没有break语句,它立即falls through到下面的case —代码中的case 1。

case 1打印"1",并且由于它也没有break语句,因此会显示case 2,依此类推。

case的1,2,3不属于default —重要的是它们的顺序。

如果您要对开关statement重新排序,并将default子句写为最后一个子句,它将什么也不打印。

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…如何使用BorderLayout(Java)扩展JTextField - java

我有一个Java程序,其中使用的是JTextField,但如果我未指定默认大小,则其宽度为0。我将其插入BorderLayout中,因此如何制作它展开以填充整个容器? java大神给出的解决方案 在上面的示例中,文本字段将正常工作。但是,如果您插入EAST或WEST,则将不起作用。import java.awt.BorderLayout; import ja…查看抽象类的方法是否未被扩展类之一覆盖的方法 - java

我有一个抽象类,比如AbstractClass和扩展该抽象类的多个其他类(700多个)。 AbstractClass有一个方法,比方说baseMethod(),它不是抽象方法。许多类(500+)覆盖该方法并具有自己的实现。现在,通过eclipse,我可以很容易地看到通过Ctrl+Shift+G覆盖该方法的方法,但是除了手动以外,还有其他方法可以看到不覆盖该方…从较小的字节数组(Java)进行长时间转换 - java

我正在尝试将字节数组转换为long,但是接收到BufferUnderflowException ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); byte[] arg1 = new byte[] {0x04, (byte)0xB0}; buffer.put(arg1, 0, arg1.length); …

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值