我试图弄清楚此嵌套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(" . ");
}
}
}
}
这是我当前得到的输出:
* * * * *
. * * * *
. . * * *
. . . * *
. . . . *
. . . . .
这是我想要的输出:
* * * * *
* * * * .
* * * . .
* * . . .
* . . . .
. . . . .
答案 0 :(得分:1)
尝试用文字写出如何用铅笔绘制这种图案。忘记这是一个计算机程序,将其视为逻辑问题。像这样的东西(其中“ ???” =学生的锻炼)
for lineNumber = 1 to 6 {
numberOfDots = ???
numberOfStars = ???
for s = 1 to numberOfStars {???}
for d = 1 to numberOfDots {???}
}
答案 1 :(得分: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相关。