我的任务是编写一个程序来显示用户输入的星号数量,然后将其平方。所以,如果我输入6,电脑就会显示36。
我正在使用 Java 编程。
这是我应该得到的:
Please enter the number of stars you would like(between 1 and 20): 4
* * * *
* * * *
* * * *
* * * *
每当我运行该程序时,在它打印出请输入您想要的星数(介于 1 到 20 之间): 之后,它会显示我输入的数字...但没有任何反应。空白。
这是我的代码。我不确定我做错了什么:
Scanner input = new Scanner(System.in);
String star = "*";
System.out.print("Please enter the number of stars you would like(between 1 and 20):\n>> ");
int numStars = input.nextInt();
for(int squared = numStars*numStars; squared < numStars+1; squared++)
{
for(int stop = 0; stop < numStars; stop++)
{
System.out.print(star+" ");
}
System.out.println(star+" ");
}
System.out.println();
最佳答案
假设 numStars
是 5。这是外面的 for
循环做:
for(int squared = numStars*numStars; squared < numStars+1; squared++)
第一个表达式是在循环开始时发生的赋值。所以循环从分配 squares = 25
开始。 .
第二个表达式告诉程序何时停止循环。或者,实际上,什么时候继续循环。按照你编写循环的方式,它会一直持续到 squares < 6
。 .一旦squares >= 6
,它停止了。自 squares
开始时为 25,这意味着它会立即停止,并且循环内的任何内容都不会被执行。
您想从设置 squared
开始在循环开始时为 0 或 1,而不是 numStars * numStars
.
另外,变量名不应该是squared
;这表明对循环的用途存在误解。 每次程序通过外循环时,它都会显示一行。这就是外循环的目的。所以调用变量rowNumber
, 而不是 squared
, 应该让事情更清楚。
关于java - 需要帮助在 For 循环中使用 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599030/