在If语句中调用方法

时间:2014-12-18 03:37:36

标签: java if-statement methods

我正在尝试创建一个简单的刽子手游戏,其中有一个玩家和多人游戏选项。我试图说,在运行intro方法之后,如果响应为1,则单个player类将调用,如果响应为2,则多玩家类将调用。我假设最有效的方法是将两个选项放入if语句中,除非你现在运行它如何,并按2进行多人游戏,它会再次在intro方法中提出问题,所以我是假设我在if语句中做错了。我已经尝试过使用括号,如果我删除了第二个if语句并且只是为多人游戏添加了其他内容,我可以按任何不是1的数字,它会说“多人游戏”而我只想要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 个答案:

答案 0 :(得分:1)

您拨打intro(0)两次。将结果存储在变量中,并将其与if(s)进行比较。使用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;
}