java break在switch_java – break和switch似乎执行所有case语句

本文探讨了在Java中,当执行带有无break的switch语句时,变量x的行为。作者质疑了默认情况下代码块会一直执行到遇到break的观点,并提出可能是根据case值的匹配来决定执行流程。文章深入剖析了可能的逻辑机制,引发读者思考背后的原理。
摘要由CSDN通过智能技术生成

Java和

Eclipse(Kempler)的最新稳定版本中,输入以下代码并执行它,假设包和类名存在:

package some_package;

public class what_the_heck {

public static void main(String[] args) {

int p = 2;

int x = 1;

switch(p){

case (1):

x--;

case (2):

x = 2;

case (3):

x = 3;

default:

x++;

}

System.out.println(x);

}

}

这打印值4.最初,我认为它应该打印2因为我认为即使没有break语句,每段代码仍然保存在case语句中.现在我认为问题在于如何编译.例如,我目前的看法是内部布尔值跟踪case语句是否等于该值.如果是,那么布尔值为true,并且所有case语句都将被视为true,直到找到中断为止.这是有道理的,但我仍然想知道这背后是否有其他原因,或者我的假设是完全错误的.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值