我一直在尝试选择您喜欢的冒险程序,但是遇到了问题。我的整个事情都在do while循环中运行,每个选项都是数组中的一个元素。我在做的同时还有if语句,可以根据用户已经完成的操作更改某些元素。这是我的代码的示例:

import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        Scanner input;
        input=new Scanner(System.in);
        boolean run;
        boolean theBoo = false;
        run = true;
        int choice;
        choice = 0;

        do {
            String[] theArray;
            theArray = new String[2];
            theArray[0] = "Hello";

            if(theBoo){
                theArray[1] = "Goodbye";
            }
            else{
                theArray[1] = "Hi";
                theBoo = true;
            }
            System.out.println(theArray[choice]);
            choice = input.nextInt();

        } while(run);
    }
}


但是由于某种原因,即使输入1,它也会打印出“再见”,因为theBoo为false。我的问题是:为什么do while循环会更改变量的值,并且如何防止它这样做呢?谢谢!

编辑:顺便说一句,我是新来的,所以如果我做错了事,我深表歉意。

Edit2:首先,感谢大家的快速回答。我进行了您建议的更改,但仍在执行相同的操作。我将代码更新为更改后的内容。

最佳答案

将您的代码更新为

if(theBoo){
    theArray[1] = "Goodbye";
}
else{
    theArray[1] = "Hi";
    theBoo = true;
}

10-07 14:04