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您的第一个解决方案解决了我的问题。不知道到底是怎么回事,但现在它工作得很好,谢谢@库巴,很高兴我能帮上忙。