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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴扬 中级黑马   /  2012-7-12 11:01  /  2201 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴扬 于 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语句后面不是已经有返回值了吗?

6 个回复

倒序浏览
本帖最后由 陆强强 于 2012-7-12 11:18 编辑

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

         System.out.println("heihei");

         return 2;   
    default:        //加上这个                        
         System.out.println("你好卡哇伊");
         return -1;
}
回复 使用道具 举报
楼主的代码中switch语句,除了处理0,1,2,其他情况都没有处理,所以编译器就报错啦!
回复 使用道具 举报
明白了,谢谢两位,太不细心了!呵呵...
回复 使用道具 举报
本帖最后由 梁健生 于 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:}
回复 使用道具 举报
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;
                }        

        }   
回复 使用道具 举报
return不应该写在switch的大括号里面写里面的是说终止程序运行了,不用返回值的。而应该写在外面里面的一般用的是break,你试一试这样写对你有用吗

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

3.png

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马