有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在If statemet中调用方法的java

我试图创建一个简单的刽子手游戏,其中有一个单人和多人选项。我想说的是,在运行intro方法之后,如果响应为1,那么单人类将调用,如果响应为2,那么多人类将调用。我认为最有效的方法是将这两个选项都放在if语句中,除非您现在运行它,然后按2键进行多人游戏,它会再次在intro方法中提问,所以我假设if语句有问题。我尝试过使用括号,如果我删除了第二个if语句,只在多人游戏中使用else,我可以按任何不是1的数字,它会显示“multiplayer”,我只想要2把我带到多人游戏类。我所有的课程都说现在是一个无效的方法,说“这是来自单人模式”等等。我不明白我在逻辑部分做错了什么,所以如果有人能帮忙的话

package hangman;
import java.util.*;

public class HangmanMain
{
    public static final Scanner input = new Scanner(System.in);

    public static int intro(int num)
    {
        int answer = num;
        System.out.println("How many players are playing? Press 1 for single player and 2 for multiplayer:");
        int response = input.nextInt();
        if (response == 1)
            answer = 1;
        if (response == 2)
            answer = 2;
        return answer;
    }

    public static void main(String[] args)
    {
        SinglePlayer single = new SinglePlayer();
        Multiplayer multi = new Multiplayer();
        if (intro(0) == 1)
            single.test1(0);
        if (intro(0) == 2)
            multi.test2(0);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您可以调用intro(0)两次。将结果存储在变量中,并在if中比较。使用else并请使用大括号,如

    int introVal = intro(1);
    if (introVal == 1) {
        single.test1(0);
        // .. more stuff here.
    } else if (introVal == 2) {
        multi.test2(0);
        // or here.
    }
    

    另外,您的intro()方法可以使用

    public static int intro(int num)
    {
        System.out.println("How many players are playing? Press 1 for single "
            + "player and 2 for multiplayer:");
        int response = input.nextInt();
        if (response == 1 || response == 2) {
            return response;
        }
        return num;
    }