黑马程序员技术交流社区

标题: 一个简单的题,稍微一改我怎么就有点不懂了呢?你看看... [打印本页]

作者: 飞舞❤心动    时间: 2012-5-31 22:27
标题: 一个简单的题,稍微一改我怎么就有点不懂了呢?你看看...
int i=1;

switch(i){

case 0: System.out.println(“zero”);

break;

case 1:  System.out.println(“one”);

break;

case 2:  System.out.println(“two”);

break;

default:  System.out.println(“default”);

}
打印: one(简单的代码)
int i = 1;

switch (i) {

case 0: System.out.println(“zero”);

break;

case 1: System.out.println(“one”);

case 2: System.out.println(“two”);

default:System.out.println(“default”);

}

打印: one  two  default  (这个怎么有点不懂啊?)大哥解释一下!

作者: 杨康    时间: 2012-5-31 22:41
因为i=1 运行case 1: System.out.println(“one”);
该代码后没有结束代码,就继续向下执行,所以two default都会相继被运行。
作者: 龙秋地    时间: 2012-5-31 22:43
  1. case 1: System.out.println(“one”);

  2. case 2: System.out.println(“two”);

  3. default:System.out.println(“default”);
复制代码
break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句.
当i=1时,switch语句执行case1中的操作,但是因为没有break,所以语句接下来继续执行,知道执行到末尾.

作者: 田建    时间: 2012-5-31 22:43
这个就是switch语句的特点,第一句之所以只打印one是因为在运行完case1之后有break,程序会终止;但你的第二个程序没有break,在执行完case1之后会依次向下执行,直到遇到break或者大括号终止!
作者: 徐炯    时间: 2012-5-31 22:48
楼上正解!
作者: 胡团乐    时间: 2012-5-31 22:56
switch (i) {

case 0: System.out.println(“zero”);

break;

case 1: System.out.println(“one”); //没加break 执行完后接着执行 直到碰到break;或者程序块结束

case 2: System.out.println(“two”);//没加break 执行完后接着执行 直到碰到break;或者程序块结束

default:System.out.println(“default”);//没加break 执行完后接着执行 直到碰到break;或者程序块结束

}
直到这 程序块结束 打印 one  two  default  
如果 i=2; 则打印two  default  楼主多测试几次就明了了






作者: 江南    时间: 2012-5-31 23:07
没有break;
就会继续执行直到遇到break才停止 如果一直都没有遇到break就会整个switch一直执行到结束
作者: 张亭    时间: 2012-5-31 23:10
楼主要好好打打基础哦,
各种语句的用法都是最基础的东西了
作者: 朝哥    时间: 2012-5-31 23:26
lz,记住,switch语句中,首先找你选择的1,然后一直往下执行,如果下面的case中有break,那就就跳出,没break,就一直执行到底。
如果你选择的1在下面的case中没有。那么swich语句会找default,然后往下执行,碰到到break跳出,一路到底没有break,那么就执行default下面的所有语句。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2