黑马程序员技术交流社区

标题: switch关键字的测试 [打印本页]

作者: 吴扬    时间: 2012-7-12 11:01
标题: switch关键字的测试
本帖最后由 吴扬 于 2012-7-12 11:35 编辑

下面这段代码是有关switch关键字的小应用,有几个地方不是很明白,请大家指点下。
  1.         public static int switchTest(){
  2.                 int i = 0;
  3.                 switch(i)
  4.                 {
  5.                         case 0:
  6.                                 System.out.println("haha");
  7.                                 return 0;
  8.                         case 1:
  9.                                 System.out.println("hehe");
  10.                                 return 1;                        
  11.                         case 2:
  12.                                 System.out.println("heihei");
  13.                                 return 2;               
  14.                 }        
  15.         }
复制代码
为什么会报“没有返回值”的错误呢?每个case语句后面不是已经有返回值了吗?

作者: 陆强强    时间: 2012-7-12 11:15
本帖最后由 陆强强 于 2012-7-12 11:18 编辑

i=3呢,你让他返回什么,所以
case 2:

         System.out.println("heihei");

         return 2;   
    default:        //加上这个                        
         System.out.println("你好卡哇伊");
         return -1;
}
作者: 韦念欣    时间: 2012-7-12 11:21
楼主的代码中switch语句,除了处理0,1,2,其他情况都没有处理,所以编译器就报错啦!
作者: 吴扬    时间: 2012-7-12 11:34
明白了,谢谢两位,太不细心了!呵呵...
作者: 梁健生    时间: 2012-7-12 11:41
本帖最后由 梁健生 于 2012-7-12 11:43 编辑

public static int switchTest(){

                int i = 0;

                switch(i)

                {

                        case 0:

                                System.out.println("haha");

                                return 0;

                        case 1:

                                System.out.println("hehe");

                                return 1;                        

                        case 2:

                                System.out.println("heihei");

                                return 2;   
                        //default:
                //System.out.println("是这个");
                //return 4;
            

                }      return 5  ;
        }


               总结:你的问题楼上几个哥们说的都很对!!我只是稍微结尾补充下~之所以运行会出现缺少返回值是因为switch语句有两个结束方法,一是遇到break,二是到结尾处“}”,因为结尾没有返回值所以会报错,我的红紫色和蓝色修改,任何一个都可以解决你的问题!!

                            希望这些能更好的帮你理解switch语句!!{:soso_e112:}

作者: 王红霞    时间: 2012-7-12 14:59
public static int switchTest(){

                int i = 0;

                switch(i)

                {

                        case 0:

                                System.out.println("haha");

                                return 0;
                                                               

                        case 1:

                                System.out.println("hehe");

                                return 1;
                                                               

                        case 2:

                                System.out.println("heihei");

                                return 2;  
               default:return 3;
                }        

        }   
作者: 耿立刚    时间: 2012-7-13 16:30
return不应该写在switch的大括号里面写里面的是说终止程序运行了,不用返回值的。而应该写在外面里面的一般用的是break,你试一试这样写对你有用吗

3.png (5.46 KB, 下载次数: 26)

3.png





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