**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
对于一个学校项目,我应该产生这个输出
10
1020
102030
10203040
1020304050
我现在的代码是:
public static void main(String[] args) {
int rows = 5;
for(int i = 10; I <= 5; ++i) {
for(int j = 1; j <= i; ++j) {
System.out.print((i * j) + " ");
}
System.out.println();
}
}
但这句话什么也没用:
for(int i = 10; I <= 5; ++i) {
就这样一直持续下去
for(int i = 10; I >= 5; ++i) {
with this output:
10
1011
101112
and so on forever.
我完全糊涂了
2条答案
按热度按时间vuktfyat1#
for循环有三个部分,用分号分隔:
初始化-它在循环的开始处运行,在其他任何操作之前
退出条件-在循环的每次迭代之前检查。如果是的话
false
,则循环中断。增量-此操作发生在每次迭代结束时。通常,我们使用它来更改退出条件中使用的变量。
检查回路
for(int i = 10; i <= 5; ++i)
你提出的问题,我们可以看到:初始化失败
int i = 10
,创建整数i
并给它赋值10
.退出条件为
i <= 5
. 一旦退出条件为false,循环将立即终止。增量为
++i
,在功能上与i = i + 1
. 换句话说,我们正在增加i
一个。我们可以看到,退出条件将立即失败(10大于5),因此将跳过循环。
你的另一个例子,退出条件是
i >= 5
,将无限期地重复,因为10大于5,并且随着你的增加,这将继续是真的10
.据我所知,解决你问题的办法是:
在这里,我们使用
i
数一数每一行。对于每一行,我们做一个变量j
数一数那一行要打印的东西的数目(一件东西在第一行,两件东西在第二行,等等)。因为我们需要打印的是十的倍数,所以我们需要
System.out.print(10 * j)
. 这个指纹10
在第一行,10
那么20
在第二条线上等。vsmadaxz2#
假设大写输入错误(java是区分大小写的),循环从值10开始,必须以值5结束,因此,它永远不会做任何事情。
这是第一个问题,同样,循环内的行为也不正常,而且似乎您不太清楚正在做什么。
想想你已经显示了:从1到5的值,第一行只输出一个值,第二行输出2个值。。。等等。
因此,您需要为每个“行”循环,也就是说,您的第一个循环必须是从1到5:
然后,对于要作为值输出的每一行。然后是另一个循环。对于1到“行”号。知道行被变量引用
i
然后:还有,控制台里有什么节目?每行的值*10。每个值都存储在
j
变量。总之:
我希望你能理解循环是如何工作的,以及如何在java中实现。
我认为最重要的是了解在循环的每个迭代中发生了什么。你可以写
System.out.print("i = "+i+" ; j = "+j);
检查每个迭代中的值或使用调试器。