如何定义一个返回值为字符串类型的方法???

时间:2022-03-05 00:30:09
我刚学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学习群吗,哪位大哥愿意收留我?

15 个解决方案

#1


这到底为什么哦,我真纳闷~~~~

#2


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());;
}
}

#3


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();
 }
}

#4


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

#5


unreachable statement
你的return放在switch块的break后面,所以程序永远不会运行到这里来

missing return statement
由于你的方法返回值是Sring类型的,但是return 放错了地方,所以程序没有找到你方法的返回语句

#6


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

#7


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

#8


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

#9


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;
    }
}

#10


来晚了

#11


题目中居然一个右括号都没有~

#12


注意右括号的位置,很多逻辑错误都是在这发生的。

#13


根本的原因不是你是否写成:String b=null,或者String b=""。
而是你的变量B可能不被初始化:
The local variable b may not have been initialized

写成这样也是可以的:
case 4:b="红桃";break;
default:
  b=“default”;break;
关键在于你自己的目的


#14


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

#15


满意满意~~~结帖咯~

#1


这到底为什么哦,我真纳闷~~~~

#2


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());;
}
}

#3


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();
 }
}

#4


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

#5


unreachable statement
你的return放在switch块的break后面,所以程序永远不会运行到这里来

missing return statement
由于你的方法返回值是Sring类型的,但是return 放错了地方,所以程序没有找到你方法的返回语句

#6


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

#7


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

#8


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

#9


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;
    }
}

#10


来晚了

#11


题目中居然一个右括号都没有~

#12


注意右括号的位置,很多逻辑错误都是在这发生的。

#13


根本的原因不是你是否写成:String b=null,或者String b=""。
而是你的变量B可能不被初始化:
The local variable b may not have been initialized

写成这样也是可以的:
case 4:b="红桃";break;
default:
  b=“default”;break;
关键在于你自己的目的


#14


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

#15


满意满意~~~结帖咯~