我刚学JAVA,有个习题要求编写一个随机发3张牌的程序,我在其中定义了一个方法,想让其返回花色,我是这样做的。
      public String huase(){
int a=1+(int)(Math.random()*4);
String b;
    switch(a){
      case 1:b="梅花";break;
     case 2:b="方块";break;
     case 3:b="黑桃";break;
     case 4:b="红桃";break;
     default:
     break;
    return b;
*****
结果编译报错!!!
unreachable statement
missing return statement
****
有JAVA学习群吗,哪位大哥愿意收留我?

解决方案 »

  1.   

    public class Card {

    public String huase(){
    int a=1+(int)(Math.random()*4);
    String b="";
        switch(a){
          case 1:b="梅花";break;
         case 2:b="方块";break;
         case 3:b="黑桃";break;
         case 4:b="红桃";break;
         default:
         break;
        }
        return b;
        }
    public static void main(String[] args) {
    Card c=new Card();
    System.out.println(c.huase());;
    }
    }
      

  2.   

    package test1;public class Testwl {
     public String huase(){
    int a=1+(int)(Math.random()*4);
    String b = null;
        switch(a){
          case 1:b="梅花";break;
         case 2:b="方块";break;
         case 3:b="黑桃";break;
         case 4:b="红桃";break;
         default:
         break;
        }
        System.out.println(b);
        return b;
       }
     
     public static void main(String args[]){
     Testwl tt=new Testwl();
     tt.huase();
     }
    }
      

  3.   

    statement
       你的错误不在这个方法把。。这是操作数据库的。。
      

  4.   

    unreachable statement
    你的return放在switch块的break后面,所以程序永远不会运行到这里来missing return statement
    由于你的方法返回值是Sring类型的,但是return 放错了地方,所以程序没有找到你方法的返回语句
      

  5.   

    unreachable statement 
    missing return statement
    说明你RETURN没放对地方 一般是你没考虑到错误的情况~~发生了错误的话会无返回值
    移动或填加下RETURN试下
      

  6.   

    哎呀呀,谢谢谢谢,我懂了!
    原来我出了两个错误:
    字符串定义要写成:String b=null,或者String b="",而我写成了String b;.
    应该是:
    switch(){
    ……
    default:
    break;
    }
    return 参数;
    我写成了:
    switch(){
    ……
    default:
    break;
    return 参数;
    }
      

  7.   

    这是我第一次在这里发帖~~有这么多朋友帮我解决问题,好兴奋~~~~~~
        看来我是找对学java的地方了
    ^_^^_^^_^嘿嘿~~今天去吃顿饭Happy一下^_^^_^^_^^_^
      

  8.   

    public String returnString() {
            String s = "";        int random = new Random().nextInt(4);        switch (random) {
            case 0:
                s = "fangkuai";
                break;
            case 1:
                s = "hongtao";
                break;
            case 2:
                s = "caohua";
                break;
            case 3:
                s = "hongtao";
                break;
            }        return s;
        }
    }
      

  9.   

    根本的原因不是你是否写成:String b=null,或者String b=""。
    而是你的变量B可能不被初始化:
    The local variable b may not have been initialized写成这样也是可以的:
    case 4:b="红桃";break;
    default:
      b=“default”;break;
    关键在于你自己的目的
      

  10.   

    在switch语句中,可能会执行default语句,从而导致你定义的类型对象b没有初始化,而采用
    return b;时,此时就会返回一个空指针类型。
    再有,你的switch语句少了右括号!以后请多加注意!