Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 当程序运行时,Do While循环连续打印_Java_Loops_Do While - Fatal编程技术网

Java 当程序运行时,Do While循环连续打印

Java 当程序运行时,Do While循环连续打印,java,loops,do-while,Java,Loops,Do While,我的程序中使用了以下代码: do { if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) { addItems(numOfItems); } else { System.out.println("That number is out of range."); System.out.println("Please choose a

我的程序中使用了以下代码:

do {
    if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) {
        addItems(numOfItems);

    } else {
        System.out.println("That number is out of range.");
        System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");
        numOfItems = scan.nextInt();
    }
} while (numOfItems != 3 || numOfItems != 5 || numOfItems != 7 || numOfItems != 9);
当它运行时,会不断重复我只想重复一次的方法。如何使循环不断重复以进行验证,但只运行该方法一次?

Replace

while(numOfItems!=3 | | numOfItems!=5 | | numOfItems!=7 | | numOfItems!=9)

while(numOfItems!=3&&numOfItems!=5&&numOfItems!=7&&numOfItems!=9)

更新

从您的评论到答案,您似乎需要执行以下操作:

do {
    numOfItems = scan.nextInt();
    if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) {
        addItems(numOfItems);

    } else {
        System.out.println("That number is out of range.");
        System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");

    }
} while (numOfItems != 3 && numOfItems != 5 && numOfItems != 7 && numOfItems != 9);
while ((numOfItems = scan.nextInt() != 3) && numOfItems != 5 && numOfItems != 7 && numOfItems != 9) {

            System.out.println("That number is out of range.");
            System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");
}

addItems(numOfItems);
但是,您可以将其优化为以下内容:

do {
    numOfItems = scan.nextInt();
    if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) {
        addItems(numOfItems);

    } else {
        System.out.println("That number is out of range.");
        System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");

    }
} while (numOfItems != 3 && numOfItems != 5 && numOfItems != 7 && numOfItems != 9);
while ((numOfItems = scan.nextInt() != 3) && numOfItems != 5 && numOfItems != 7 && numOfItems != 9) {

            System.out.println("That number is out of range.");
            System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");
}

addItems(numOfItems);
替换

while(numOfItems!=3 | | numOfItems!=5 | | numOfItems!=7 | | numOfItems!=9)

while(numOfItems!=3&&numOfItems!=5&&numOfItems!=7&&numOfItems!=9)

更新

从您的评论到答案,您似乎需要执行以下操作:

do {
    numOfItems = scan.nextInt();
    if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) {
        addItems(numOfItems);

    } else {
        System.out.println("That number is out of range.");
        System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");

    }
} while (numOfItems != 3 && numOfItems != 5 && numOfItems != 7 && numOfItems != 9);
while ((numOfItems = scan.nextInt() != 3) && numOfItems != 5 && numOfItems != 7 && numOfItems != 9) {

            System.out.println("That number is out of range.");
            System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");
}

addItems(numOfItems);
但是,您可以将其优化为以下内容:

do {
    numOfItems = scan.nextInt();
    if (numOfItems == 3 || numOfItems == 5 || numOfItems == 7 || numOfItems == 9) {
        addItems(numOfItems);

    } else {
        System.out.println("That number is out of range.");
        System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");

    }
} while (numOfItems != 3 && numOfItems != 5 && numOfItems != 7 && numOfItems != 9);
while ((numOfItems = scan.nextInt() != 3) && numOfItems != 5 && numOfItems != 7 && numOfItems != 9) {

            System.out.println("That number is out of range.");
            System.out.println("Please choose an odd number in the range of [1, 10] exclusively:");
}

addItems(numOfItems);

你可能想纠正一下

while (numOfItems != 3 || numOfItems != 5 || numOfItems != 7 || numOfItems != 9);
因为,它总是正确的


如果您总是希望执行语句的
do{…}
块,则可以消除此(
do..while
)条件。(“…我只想发生一次”)

您可能需要更正

while (numOfItems != 3 || numOfItems != 5 || numOfItems != 7 || numOfItems != 9);
因为,它总是正确的


如果您总是希望执行语句的
do{…}
块,则可以消除此(
do..while
)条件。(“…我只想发生一次”)

修复了解决方案,但现在无法正确验证。如果我输入一个不是3、5、7或9的数字,然后输入其中一个数字,则该方法不会运行?这不是一个理想的行为吗?继续运行循环,直到用户输入这4个数字中的一个?如果这不是期望的行为,则需要提供更多explanation@Kooba:您所说的“方法”是什么意思。您提供的代码摘录不调用任何方法。@VHS您的第一个解决方案解决了我的问题。不知道到底是怎么回事,但现在它工作得很好,谢谢@库巴,很高兴我能帮上忙。这解决了问题,但现在它无法正确验证。如果我输入一个不是3、5、7或9的数字,然后输入其中一个数字,则该方法不会运行?这不是一个理想的行为吗?继续运行循环,直到用户输入这4个数字中的一个?如果这不是期望的行为,则需要提供更多explanation@Kooba:您所说的“方法”是什么意思。您提供的代码摘录不调用任何方法。@VHS您的第一个解决方案解决了我的问题。不知道到底是怎么回事,但现在它工作得很好,谢谢@库巴,很高兴我能帮上忙。