在循环中创建一个新的布尔值,然后从循环外部调用它

时间:2013-12-08 04:02:14

标签: java loops boolean

大家。我希望这将是一个简单的修复,但我似乎无法找到任何东西...... 我正在写一个简单的基于文本的游戏,我让玩家有一套选择。 类似的东西:

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    Boolean loop = true;

    while (loop){
        System.out.println("What do you want to do? [a], or [b]?");
        String choice = reader.readLine();

        if (choice.equals("a")){
            System.out.println("Outcome A");
            System.out.println("Loops back to choice, both A and B available.");
        } else if (choice.equals("b")){
            System.out.println("Outcome B");
            loop = false;
            System.out.println("Story continues, B eventually no longer available.");
        }
    }

这很好用。 我的问题在于我希望从玩家之前的选择中获得一系列新的选择。 我很难准确地解释我想要的东西,但它会像这样: 在选择B之后,故事继续进行,玩家可以返回选择A和B的某个地方。 但有些事情发生在玩家将选择B排除在两次之后。 我想做的是在选择B下放一个新的布尔值,比如说loop2。 当loop2 = true时,我只希望选择A可用,所以我基本上复制了我的第一个循环,但没有B可用

我的问题是,我不能使用我在loop2中放入“loop”的布尔值。 我对Java非常生疏,这是让我重新站起来的练习。 我是否必须单独上课才能完成我想要做的事情? 或者只是通过使用新循环来实现这一目的吗?

我很感激任何帮助,并提前感谢!

1 个答案:

答案 0 :(得分:0)

这只是一个建议,但您可以尝试使用布尔数组作为循环变量。对于第一个循环,如果用户键入B,则将循环数组的索引设置为false,中断while循环并将下一个循环元素设置为true并继续算法。此可能需要嵌套while循环,具体取决于您的整体实施。