如何将布尔值返回给另一个方法?

时间:2015-01-06 00:56:36

标签: java methods boolean

我正在尝试制作一个简单的故事冒险文本游戏。我创建了一个名为'key'的布尔值并将其设置为false。在单独的方法中,如果用户键入1,则应将键布尔值设置为true,并将值true返回到start方法。但是,我不确定我会怎么做。以下是两种方法的代码:

开始方法:

static void start() throws IOException  {
    boolean key = false;
    Scanner in = new Scanner(System.in);
    System.out.println("You are in a dark room with 3 doors.");
    System.out.println("Pick 1. 2. or 3.");



    int number;

    number = in.nextInt(); 

    if(number == 1) {

        room1();


        }



    }
}

将key的值更改为true的方法:

     static void room1() throws IOException {
    Scanner in = new Scanner(System.in);
    System.out.println("You have picked room 1.");
    System.out.println("You find a dead man's corpse.");
    System.out.println("Do you: 1. Loot the corpse or 2. Go back to the starting area");


    int number;

    boolean key; 
    number=in.nextInt();
    if(number == 1) {
        System.out.println("You find a key to another door, perhaps back at the starting area?");
         key = true;
        start();
    }

}

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

key方法中声明start的问题是它超出了该方法之外的范围。您无法通过room1等其他方法访问它。

要将key变量保留在范围内,必须在任何方法之外将其声明为类变量,但在类本身内部。它必须是static,因此您的static方法可以访问它。

答案 1 :(得分:0)

只是想更广泛一点。在你的游戏中,你每个地下城至少要有一把钥匙,因此拥有一个私密的“钥匙”阵列会更有意义,并使用访问器来测试你的角色是否有地下城钥匙。

希望有所帮助。

答案 2 :(得分:0)

正如人们已经回答的那样,将变量更改为全局,这意味着在类的开头声明该变量,然后在您的方法中使用它。

示例:

public class Example {
public static boolean key = false;
}

此外,我鼓励您使用switch-case来做出您即将做出的选择:

int number;

number = in.nextInt(); 

switch(number) {
case 1:
    room1();
    break;
case 2:
    room2();
    break;
default:
    break;
    }