A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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  (这个怎么有点不懂啊?)大哥解释一下!

8 个回复

倒序浏览
因为i=1 运行case 1: System.out.println(“one”);
该代码后没有结束代码,就继续向下执行,所以two default都会相继被运行。
回复 使用道具 举报
  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,所以语句接下来继续执行,知道执行到末尾.
回复 使用道具 举报
这个就是switch语句的特点,第一句之所以只打印one是因为在运行完case1之后有break,程序会终止;但你的第二个程序没有break,在执行完case1之后会依次向下执行,直到遇到break或者大括号终止!
回复 使用道具 举报
楼上正解!
回复 使用道具 举报
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:00
7#
没有break;
就会继续执行直到遇到break才停止 如果一直都没有遇到break就会整个switch一直执行到结束
回复 使用道具 举报
张亭 中级黑马 2012-5-31 23:10:14
8#
楼主要好好打打基础哦,
各种语句的用法都是最基础的东西了
回复 使用道具 举报
朝哥 中级黑马 2012-5-31 23:26:51
9#
lz,记住,switch语句中,首先找你选择的1,然后一直往下执行,如果下面的case中有break,那就就跳出,没break,就一直执行到底。
如果你选择的1在下面的case中没有。那么swich语句会找default,然后往下执行,碰到到break跳出,一路到底没有break,那么就执行default下面的所有语句。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马