java - 在 Java 中执行 while 循环更改变量

标签 java if-statement do-while

我一直在尝试选择适合您的冒险类型的程序,但遇到了问题。我让整个事情在一个 do while 循环中运行,每个选项都是数组中的一个元素是一个元素。我在 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,它会打印出“Goodbye”,即使它应该打印出“Hi”,因为 theBoo 为 false。我的问题是:为什么 do while 循环会改变我变量的值,我该如何防止它这样做?谢谢!

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

Edit2:首先,感谢大家的快速回答。我做了您建议的更改,但它仍然在做同样的事情。我将代码更新为具有更改的内容。

最佳答案

将代码更新为

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

关于java - 在 Java 中执行 while 循环更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149374/

相关文章:

java - 将 2 个 boolean Controller 放入 do while 表达式中?

java - 我们可以同时运行两个小程序吗

谁能弄清楚为什么我的循环不能正常工作

java - ListActivity (ListView) 中带有 SimpleCursorAdapter 的 CheckBox

c - C编程中如何简化多个重复的if/else if语句

c - 如何修复c中if语句崩溃的问题

java - "do"在这里做什么? ( java )

c - 使用 while 和 do-while 循环在 C 中输出简单的猜数游戏

java - 当我使用列表时出现奇怪的空指针异常错误

java - 在 Android 中将变量传递给新类