java嵌套循环,无法理解如何编写此代码
嘿,我有一个问题,几个小时来我一直在想,我需要使用嵌套循环来打印以下内容
-----1-----
----333----
---55555---
--7777777--
-999999999-
这就是我目前所拥有的
public static void Problem6 () {
System.out.println("Problem 6:");
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print("-");
}
for (int j = 1; j <= 9; j += 2) {
System.out.print(j);
}
for (int j = 5; j >= i; j--) {
System.out.print("-");
}
System.out.println();
}
}
这是它打印的
-----13579-----
----13579----
---13579---
--13579--
-13579-
# 1 楼答案
这些用于循环
印刷品
# 2 楼答案
# 3 楼答案
你有正确的破折号,只是没有正确地打印出数字。让我们来看看为什么会这样:
哪个循环打印出数字? 第二个嵌套for循环
它有什么作用? 它打印出
j
,其中j
范围从1
到9
,并且j
在循环的每次迭代中递增2。换句话说,1, 3, 5, 7, 9
,这在您的输出中得到确认你想让它做什么? 让我们看看期望的输出。您希望
1
在第一行上打印一次。您希望3
在下一行的第三行上打印三次。您希望5
在之后的第五行上打印五次。等等你注意到一种模式了吗?您希望我们上面提到的循环将相同的数字(
1
,3
,5
,i
)打印为次数(1
,3
,5
,i
)编辑哎呀,我实际上误读了输出。我的回答仍然和以前非常相似,但我对你打印的是哪一行撒谎。它仍然是
3
三次,5
五次,但是不同的线。从我的解决方案跳到实际解决方案的最简单方法是注意到在偶数行上。。。你什么也不做。你甚至可以这样写你的解决方案另一个技巧是,你应该专注于把每一行的数字和破折号分开。当你在每一行上修正数字时,你很可能会把破折号的数量搞砸,但是你会意识到如何很容易地修正破折号