我一直在尝试选择您喜欢的冒险程序,但是遇到了问题。我的整个事情都在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;
}