while loop如何在java中重复将一个数字乘以2,直到它达到100万?
import java.util.Scanner;
class Main {
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
int testNumber = userInput.nextInt();
do{
System.out.println(newNumber * 2);
newNumber++;
}while( testNumber < 1000000);
}
}
# 1 楼答案
你对循环的想法是正确的,但是你的变量有很多问题
testNumber
读取了一个变量,但随后(错误地)操作了一个完全不同的变量-newNumber
李>你可能希望你的循环是这样的:
# 2 楼答案
将数字乘以2后需要更新:
此外,您正在使用
newNumber
和testNumber
,并且newNumber
似乎没有在任何地方定义您需要选择一个,因为如果您正在更新
newNumber
,但比较循环中的testNumber
,您将创建一个无限循环你展示的代码不应该编译,除非你在文章中遗漏了什么
# 3 楼答案
在
do-while
循环中有一个棘手的部分。在这种类型的循环中,首先执行do
部分。对于下面的示例,虽然输入已经大于1000000,但它打印1000001因此,在do while循环中执行某些操作之前,最好使用一些保护子句(aka,
if-statements
)。比如# 4 楼答案
描述这里出了什么问题。我想提供一个完整的例子:
Try it online!
小心该代码不会处理任何错误的用户输入。例如,如果给它
0
,它将永远循环,如果给它foo
,它将崩溃。如果您想处理用户输入的所有边缘情况,这将实现:Try it online!
# 5 楼答案
您还可以为它创建一个递归方法
# 6 楼答案