检查布尔数组中的值(Java)

Kri*_*ian 0 java arrays boolean

我遇到以下问题时遇到轻微困难.

我初始化了一个名为numberArray的布尔数组,其中包含31个索引.用户应该在1到30之间输入5位数,并且每次输入数字时,程序应该将正确的索引设置为true.例如,如果我输入5则:

numberArray [5] = true;

但是,如果用户第二次输入值5,则应该向用户发出已经输入该号码的消息,因此用户必须选择不同的值.我试图创建一个循环如下:

public void enterArrayValues() {
    for(int i = 1; i < 6; i++) {
        System.out.print("Give " + i + ". number: ");
        int enteredNumber = input.nextInt();
        while (numberArray[enteredNumber] = true) {
            System.out.println("This number has already been chosen.");
            System.out.print("Give " + i + ". number again: ");
            enteredNumber = input.nextInt();
        }
        numberArray[enteredNumber] = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行程序时,无论我输入什么,我都会自动收到消息"已经选择了数字".即使是我第一次输入数字.我不懂.默认情况下,布尔数组中的所有值都不是false吗?

如果有人能帮助我,我将不胜感激!

rat*_*eak 5

while (numberArray[enteredNumber] = true) {
Run Code Online (Sandbox Code Playgroud)

做那个

while (numberArray[enteredNumber] == true) {
Run Code Online (Sandbox Code Playgroud)

或改为

while (true == numberArray[enteredNumber]) {
Run Code Online (Sandbox Code Playgroud)

或者干脆放下 ==true

while (numberArray[enteredNumber]) {
Run Code Online (Sandbox Code Playgroud)