【问题标题】:Can't print out string from another method?无法从其他方法打印出字符串?
【发布时间】:2014-03-23 01:57:53
【问题描述】:

我是 Java 新手,我正在尝试完成宾果游戏的第一步,随机调用,这是一个来自 B、I、N、G、O 的随机字母。带有一个随机对应的字母,但它不起作用,错误:

MISSING RETURN STATEMENT.

有人可以帮助我吗?这是我的代码:

import java.util.Random;

public class random {

    public static void main(String[] args) {
        Call();
        System.out.println(Call());

    }

    public static String Call() {
        Random call = new Random();
        int numb = call.nextInt(75) + 1;
        if (numb < 16) {
            return "B" + numb;
        } else if (numb < 31 && numb > 15) {
            return "I" + numb;
        } else if (numb < 46 && numb > 30) {
            return "N" + numb;
        } else if (numb < 61 && numb > 45) {
            return "G" + numb;
        } else if (numb < 76 && numb > 60) {
            return "O" + numb;
        }
    }
}

【问题讨论】:

标签: java string class


【解决方案1】:

Call 后面需要 (),所以System.out.println(Call());

或者,您可以这样做:

    String theCall = Call();
    System.out.println(theCall);

【讨论】:

  • 谢谢!!我更改了代码,但还有另一个问题:缺少返回语句。
  • --------配置:----- --- E:\ComputerScience\Assignments\BingoGUI\random.java:25: error: missing return statement } ^ 1 error Process completed.
  • 如果ifs 都不匹配,调用会返回什么?在最后一次测试之后,您没有一般的else 案例,也没有失败的return
  • @user3120509 您需要在Call() 函数中使用最后一个return 语句。每当您有一系列返回值的 if-else 语句时,最后都需要一个 else 语句。这是为了确保函数总是以一个值退出。
【解决方案2】:

如果你需要它是一个变量,你还没有定义 Call,但如果你的意思是打印函数的输出,它应该像

 System.out.println(Call());

【讨论】:

  • 谢谢!!但我仍然收到错误消息:更改代码后缺少返回语句
  • @user3120509 在所有这些 if(s) 之后你需要一个 else,以便编译器了解如果这些条件都不为真,那么 else 块将返回一些东西,希望还不算太晚我刚刚注意到你发表评论
【解决方案3】:

试试这个.........它对我有用。

导入 java.util.Random;

公开课宾果游戏{

    public static void main(String[] args) {
        String output=Call();
        System.out.println(output);

    }

    public static String Call() {
        String name="";
        Random call = new Random();
        int numb = call.nextInt(75) + 1;
        if (numb < 16) {
            return "B" + numb;
        } else if (numb < 31 && numb > 15) {
            return "I" + numb;
        } else if (numb < 46 && numb > 30) {
            return "N" + numb;
        } else if (numb < 61 && numb > 45) {
            return "G" + numb;
        } else if (numb < 76 && numb > 60) {
            return "O" + numb;
        }
        return name;
    }
}

【讨论】:

    【解决方案4】:

    对于 Java,您需要在代码末尾添加一个故障安全返回语句,因此如果您的所有 else if 失败,程序仍然可以返回。

    如果您使用影响程序的布尔语句尤其重要,例如:

    public void Age() {
    
        int person = 0;
    
        if(person >= 0 && person =< 1) {
           return true;
        }
        else if (person > 1 && person =< 5) {
           return true;
        }
    

    这段代码的问题是,如果这两个都不为真,它需要一个最终的 return 语句。假设我输入 6,Java 不能返回任何东西。

    所以我们添加另一个返回作为默认值。要么使用另一个 else 语句,要么像 JavaKumar 那样直接返回。

    public void Age() {
    
        int person = 0;
    
        if(person >= 0 && person =< 1) {
           return true;
        }
        else if (person > 1 && person =< 5) {
           return true;
        }
        else {
           return false;
        }
    

    希望这有助于理解这个概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 2019-04-22
      相关资源
      最近更新 更多