【发布时间】:2017-09-25 21:06:00
【问题描述】:
我已广泛搜索有关此主题的信息,但无济于事。我真的在为 Java 循环而苦苦挣扎。
我了解了 For/While 循环的总体思路,但是当真正开始编程时,我得到一个又一个错误...
我已经尝试写出我的程序并理解它的逻辑,但我似乎无法让程序执行我希望它执行的操作。
手头的任务:
使用 Scanner 编写一个程序,要求用户输入 1 到 9(包括 1 和 9)之间的数字 n。程序打印一个有 n 行的三角形。第一行仅包含 1 的平方,并且它是右对齐的。第二行包含 2 的平方和 1 的平方,并且是右对齐的。随后的行包括 3、2 和 1 的正方形,然后是 4、3、2 和 1,依此类推,直到打印 n 行。
假设用户输入 4,程序将下面的三角形打印到控制台
1 4 1 9 4 1 16 9 4 1对于完整的信用,每列应为 3 个字符宽,并且值应右对齐。
到目前为止,我已经接近了(暂时不包括用户输入,只是试图至少掌握循环方面,然后我会继续努力):
public class MyClass {
public static void main(String args[]) {
int rows = 4; // this is the value that the user will enter for # of rows
for (int i = 1; i <= rows; i++) {
for (int j = i; j >= 1; j--) {
System.out.print((j*j)+" ");
}
System.out.println();
}
}
}
打印:
1
4 1
9 4 1
16 9 4 1
【问题讨论】:
-
你的三角形是倒置/镜像的吗?您是否尝试反转您的内部循环,以便从 1 开始并递增到
i,而不是从i开始并递减到 1? -
我不认为它是倒置的,只是没有足够的空白将上述行推入到位。例如,最下面一行是完美的,而不是倒置的。
-
既然这是一个家庭作业问题,我认为我们不应该给你答案。以下是有关创建右对齐三角形的一些信息:stackoverflow.com/questions/11542113/…
-
感谢大家的回答!这是我第一次在 stackoverflow 上,我从来没有觉得在家庭作业问题上寻求帮助是正确的,但是出于某种原因,这个真的让我很开心。循环发送给我一个循环... (;
标签: java loops for-loop while-loop