【问题标题】:How would I change this nested loop?我将如何更改这个嵌套循环?
【发布时间】:2019-10-17 10:19:13
【问题描述】:

今晚我的 AP 计算机科学课程的简短家庭作业是更改此嵌套循环,使其打印 1、3、5、7 颗星,而不是 1、2、3、4、5、6、7 颗星。

这是我的代码:

public static void main(String args[])
    {
        //print 1,3,5,7 stars
        for(int i=1; i<=7; i++)
        {
            for(int j=1; j<=i; j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
    }

【问题讨论】:

  • 哪个数字控制打印的星数? ij?
  • 提示:continue 声明。
  • 有什么想法,有什么想法吗?如果你自己弄清楚,你会学到更多。试一试。

标签: java nested-loops


【解决方案1】:

i 增加二非一

for(int i=1; i<=7; i = i + 2)

或按照@andreas 的建议

for(int i=1; i<=7; i+= 2)

输出

*
***
*****
*******

编辑

根据@andreas 下面的评论,在 java11+ 中以下也是可能的

for(int i=1; i<=7; i += 2)
    System.out.println("*".repeat(i));

【讨论】:

  • i += 2 会更好,并且与i++ 更一致。
【解决方案2】:

由于@ScaryWombat 已经answered,您可以将i 增加2 以实现所需的模式。我宁愿消除循环的嵌套结构;你知道最长的输出是七颗星,初始化一个常量String 并为每一行打印相应的子字符串。喜欢,

String stars = "*******";
for (int i = 1; i <= stars.length(); i += 2) {
    System.out.println(stars.substring(0, i));
}

【讨论】:

  • 在 Java 11+ 中:System.out.println("*".repeat(i));
  • @Andreas 那太好了
猜你喜欢
  • 1970-01-01
  • 2020-06-07
  • 2014-03-05
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
相关资源
最近更新 更多