java - 需要帮助在 For 循环中使用 For 循环

标签 java for-loop

我的任务是编写一个程序来显示用户输入的星号数量,然后将其平方。所以,如果我输入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/

相关文章:

java - JPA:结果列表 - 将 Object[] 转换为元组

java - 我应该尽量减少 "if"语句或 "for"循环的数量吗?

c - 我打印这个字符串列表的方式有什么问题?

c - 我如何知道用户写了多少个相同的数字?

java - javax.persistence.Query 对象是否可缓存?

java - 如何使用 Java Regex 删除文本中的标题?

java - 为什么从非静态方法访问静态方法不好?

java - LocalDateTime 和 SQL Server JDBC 4.2 驱动程序

javascript - 你可以使用 for 循环递减条件吗

python - 如何并行迭代两个列表?