Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中增加循环中的变量_Java_Arrays_Loops_While Loop - Fatal编程技术网

在Java中增加循环中的变量

在Java中增加循环中的变量,java,arrays,loops,while-loop,Java,Arrays,Loops,While Loop,我正在做一个骰子游戏,我想让用户保留一些骰子,然后重新掷其他骰子。我将他们的前5个骰子存储在一个名为dieArray的数组中,然后打印该数组的内容,每个骰子都进行编号,然后询问用户希望保留哪个骰子,一次循环一个 想法是将用户选择保留的骰子的值添加到我称之为keepArray的新数组中 我当前的循环代码如下 while(bool != false){ System.out.print("Would you like to keep a die? y/n: "); c

我正在做一个骰子游戏,我想让用户保留一些骰子,然后重新掷其他骰子。我将他们的前5个骰子存储在一个名为
dieArray
的数组中,然后打印该数组的内容,每个骰子都进行编号,然后询问用户希望保留哪个骰子,一次循环一个

想法是将用户选择保留的骰子的值添加到我称之为
keepArray
的新数组中

我当前的循环代码如下

while(bool != false){
        System.out.print("Would you like to keep a die? y/n: ");
        char ch = scanner.next().charAt(0);


        if(ch == 'n') {
            System.out.println("Exiting----------------------------------------------");
            bool = false;
        }
        else{
            System.out.print("Which die number would you like to keep?: ");
            int keep = scanner.nextInt();
            int i = 0;
            keepArray[i] = die.dieArray[keep];
            i++;
            System.out.println("i value is " + i);
        }
    }

我遇到的问题是,
else
语句中的
I
没有递增。我觉得我不了解Java中
循环的基本原理,因为每次访问else循环时,我都会看到它,当用户被问到是否想保留一个骰子时,每次回答“y”,我的
I
应该增加1。显然不是这样。

您的
i
变量在每一轮中都会被重新创建。您需要声明
inti=0

您的
i
变量将在每一轮上重新创建。您需要声明
inti=0

作为旁注,使用
=
=
进行任何比较=
将返回一个
布尔值
。例如写
1!=2
与写入
true
相同。记住这一点,如果变量
bool
false
,则
bool!=false
将返回
false
;如果
bool
true
,则
bool!=false
将返回
true
。因此,您可以只编写
while(bool)
而不是
while(bool!=false)
。作为旁注,使用
=
=
进行任何比较=
将返回一个
布尔值
。例如写
1!=2
与写入
true
相同。记住这一点,如果变量
bool
false
,则
bool!=false
将返回
false
;如果
bool
true
,则
bool!=false
将返回
true
。因此,您可以只编写
while(bool)
而不是
while(bool!=false)