【问题标题】:Trying to invert output of nested for loop试图反转嵌套 for 循环的输出
【发布时间】:2019-02-14 18:10:57
【问题描述】:

我试图弄清楚这个嵌套 for 循环的逻辑。从功能上讲,代码可以工作,但输出应该被反转。

我尝试过使用嵌套 for 循环的逻辑,但它总是使我的 IDE 崩溃。此外,切换 for 循环打印出来的内容并没有给我想要的结果。

public class stardot {
    public static void main(String[] args) {
        for (int i = 5; i >= 1; i--) {
            for (int j = 1; j <= i; j++) {
                System.out.print(" * ");
            }
            System.out.println();
            for (int k = 5; k >= i; k--) {
                System.out.print(" . ");
            }
        }
    }
}

这是我目前得到的输出:

 *  *  *  *  * 
 .  *  *  *  * 
 .  .  *  *  * 
 .  .  .  *  * 
 .  .  .  .  * 
 .  .  .  .  . 

这是我想要的输出:

 *  *  *  *  * 
 *  *  *  *  . 
 *  *  *  .  . 
 *  *  .  .  . 
 *  .  .  .  .
 .  .  .  .  .

【问题讨论】:

  • 如果从头开始重写。您需要一个循环来处理行数,使其看起来像for(int row = 0; i&lt;6; row++) - 并且在每一行中,您需要打印一些与行号相关的开始和点。开始和点的关系是什么?应该先打印哪个?
  • @Pshemo 我应该发布解决方案吗?还是让他自己做?
  • @Pshemo 哦,好吧...
  • @LppEdd 大多数作业的重点是学习如何解决一系列问题,而不仅仅是查看某些特定案例的最终答案。
  • 您是否考虑过从新终端运行程序?这样你就可以关闭终端,而不是等到你的编辑器重新启动

标签: java nested-loops


【解决方案1】:

这是解决您问题的方法:

public static void main(String []args){
    for (int i = 0; i < 5; i++) {
            for (int k = i; k < 5; k++) {
                System.out.print(" * ");
            }
            for (int j = i; j > 0; j--){
                System.out.print(" . ");
            }

            System.out.println();
     }
}

当像这样计算循环时,它有助于查看每行所需的每个字符的数量。因此,例如,在第一行中,您需要 5 个星号、0 个句点。然后你需要 4 个星号和 1 个句点,然后是 3 个星号和 2 个句点,等等......

然后当你找出每一行的这些值时,试着找出一个模式。所以我们可以看到,当 i 为 0 时,我们需要 5 个星号 (5-i) 和 0 个句点 (i - 0)。当 i 为 1 时,我们需要 4 个星号 (5-i) 和 1 个句点 (i - 0)。等等......从那里,我们可以看到for循环的结构需要与i相关。

【讨论】:

  • 谢谢你,Connor,这是一个很有帮助的解释。
【解决方案2】:

试着用文字写下你会如何用铅笔画出这个图案。忘记这是一个计算机程序,把它当作一个逻辑问题。类似的东西(其中'???' =学生的练习)

for lineNumber = 1 to 6 {
    numberOfDots = ???
    numberOfStars = ???
    for s = 1 to numberOfStars {???}
    for d = 1 to numberOfDots {???}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2020-04-18
    • 2013-10-17
    • 2018-04-04
    相关资源
    最近更新 更多