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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘乃宽 中级黑马   /  2013-7-24 21:54  /  1692 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class SwitchDemo
  2. {
  3.         public static void main(String[] args)
  4.         {

  5.                 int x = 3;
  6.                 switch(x)//byte short int char
  7.                 {
  8.                         default:                                                     //default 是做什么用的
  9.                                 System.out.println("d");
  10.                                 //break;
  11.                         case 4:
  12.                                 System.out.println("a");
  13.                                 //break;
  14.                         case 6:
  15.                                 System.out.println("b");
  16.                                 break;
  17.                         case 2:
  18.                                 System.out.println("c");
  19.                                 break;
  20.                        
  21.                        
  22.                 }
  23.         }
复制代码
感觉default如果是一个判断的话,放在前面可以么?

14 个回复

正序浏览
default不管,放不放在前面,都是先找到case执行,case中如果没有满足的才最后执行default,如果default放在第一行,case都没有满足的,下面也没有break的话,那执行完default还继续向下执行,直到遇到break或者大括号才结果执行。
回复 使用道具 举报
default相当于if...else中的  else,在其他条件不满足的情况下执行。放的位置是随便的,因为swtich语句是最后才执行到default的,当其他条件不满足时,开始读default语句,如果default语句后面有break语句,就直接跳出循环,如果没有break语句,读完default语句后会继续往下执行,直到遇到  break  或者 },然后才结束循环。
回复 使用道具 举报
default是可选的,如果没有它,当所有匹配不成功时,不执行任何语句。位置放在哪里都可以
回复 使用道具 举报
也就是说,放在前面是可以的只要在循环内就行,建议看看毕老师视频----黑马程序员_毕向东_Java基础视频教程第02天-19-语句(Switch).avi
回复 使用道具 举报
当swich中所有的答案都不对,也就是说所有case的值都不等于x时,执行default.这和default的位置无关.因为swith语句是先对所有的case进行判断,当都不成立时才执行default
回复 使用道具 举报
本帖最后由 王广亚 于 2013-7-25 00:23 编辑
  1. <p>class SwitchDemo

  2. {

  3.        public static void main(String[] args)

  4.         {



  5.                int x = 3;

  6.                switch(x)//byte short int char

  7.               {

  8.                        default:                   //default 是做什么用的?<font color="red">首先default是在这个选择语句中所有的case都不满足时才执行的
  9. </font>
  10.                                 System.out.println("d");

  11.                                //break;                //再者楼主需要注意的是在这个switch选择语句中一两中方式结束的一、当运行到break;时;二、运行到最后的大括号,</p><p>                                                                                      //这里加不加break 楼主需慎重

  12.                        case 4:

  13.                                System.out.println("a");

  14.                                 //break;

  15.                        case 6:

  16.                                 System.out.println("b");

  17.                                break;

  18.                        case 2:

  19.                                 System.out.println("c");

  20.                                break;

  21.                }

  22.        }

  23. </p>
复制代码
回复 使用道具 举报
放在哪里位置无所谓,default是默认值的,也就是当其他值都没有选择到的时候,才会选择default,如果加了 break的话 。和顺序没有关系。
回复 使用道具 举报
可以的,switch语句本身就是一个多选择的语句(开关语句)。default就是指当所有case 都不满足时,就执行它。不过放在前面记得加上break;语句,不然执行完default 后会继续执行下一个case。
回复 使用道具 举报
刘乃宽 发表于 2013-7-24 22:08
default放在最后判断么

default 是最后执行的,case 都不满足就会自动执行,default 放在前面,需要加上break 跳出,否则会继续执行。  :)其实 楼主可以这种问题 自己敲代码 来回试试~~放这里行不行 发那里行不行~这样有助于自己理解 而且记忆深刻的~~很实用的~
回复 使用道具 举报
default 是在所有case 都不满足的情况下执行的,default 放在前面可以,但需要加上break 。否则将继续执行下面case内的语句。
回复 使用道具 举报 0 1
不可以,default在switch语句中也算是个结束的标志
回复 使用道具 举报
刘乃宽 发表于 2013-7-24 22:08
default放在最后判断么

建议 是的
如果你觉得有必要放在其他位置,也没有说不可以
这个要看你怎么用它才合适
人是活的,活用就OK:loveliness:
回复 使用道具 举报
lljwdbklb 发表于 2013-7-24 22:05
default是什么
答案不是出来了么
就是case没设置出来的 默认就是执行default以下的内容 ...

default放在最后判断么
回复 使用道具 举报
default是什么
答案不是出来了么
就是case没设置出来的 默认就是执行default以下的内容
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马