无法从结果类型为void的方法返回值错误

时间:2013-03-20 08:16:54

标签: java compiler-errors return

我正在尝试从一个方法获取用户输入并在另一个方法中使用它。我很困惑,无法从结果类型为void的方法返回一个值,因为“userMove”被定义为int类型。

public static void move()
{
    System.out.println("What do you want to do?");
    Scanner scan = new Scanner(System.in);
    int userMove = scan.nextInt();
    return userMove;
}

public static void usersMove(String playerName, int gesture)
{
    int userMove = move();

    if (userMove == -1)
    {
        break;
    }

2 个答案:

答案 0 :(得分:8)

在您返回void时,只需将int更改为int

public static int move()
{
    System.out.println("What do you want to do?");
    Scanner scan = new Scanner(System.in);
    int userMove = scan.nextInt();
    return userMove;
}

void方法意味着它不返回任何内容(即没有返回语句),除void之外的任何内容都返回,并且需要返回。

答案 1 :(得分:4)

标记为void的方法意味着它不会返回任何内容。它可以被视为procedure而不是function

将方法签名更改为public static int move()可以解决您的问题。您的方法现在代表function,它具有返回值。

This Oracle教程应该提供一些有用的信息。