救救孩子吧运行之后K的值是多少呀 讲一下原理

int x=6, y=10, k=5;
switch( x%y ){
case 0: k=xy;
case 6: k=x/y;
case 12: k=x-y;
default: k=x
y-x;
}

因为 6%10 等于 0
所以就会直接匹配到第一个case 0 因为没有break做结束
所以会从case 0 一直跑到default
所以最后 k = xy-x = 6*10-6=54


int x=6, y=10, k=5;
switch( x%y ){
case 0: 
      k=x*y;
      System.out.println("k="+ k + " case : 0 结束");
case 6: 
      k=x/y;
      System.out.println("k="+ k + " case : 6 结束");
case 12: 
      k=x-y;
      System.out.println("k="+ k + " case : 12 结束");
default: 
      k=xy-x;
      System.out.println("k="+ k + " default 结束");
}

以上打印的结果可以看出执行顺序,
k=0 case : 6 结束
k=-4 case : 12 结束
k=54 default 6 结束

为什么是这个执行顺序,可以看看 break 关键字的使用,每个 case 可以以 break 关键字做结束。

比如以下代码执行的顺序:


int x=6, y=10, k=5;
switch( x%y ){
case 0: 
      k=x*y;
      System.out.println("k="+ k + " case : 0 结束");
      break;
case 6: 
      k=x/y;
      System.out.println("k="+ k + " case : 6 结束");
     break;
case 12: 
      k=x-y;
      System.out.println("k="+ k + " case : 12 结束");
       break;
default: 
      k=xy-x;
      System.out.println("k="+ k + " default 结束");
}

执行 结果为 :
k=0 case : 6 结束