我创建了应该打印像
这样的模式的代码12345
2345
345
45
5
我有下面编写的代码,逻辑在python中运行正常但在java中输出不同。
class Testing{
public static void main(String args[])
{
for (int i = 1; i<6;i++)
{
for (int j =0; j<i-1;j++)
{
System.out.print(" ");
}
while (i < 6){
System.out.print(k);
System.out.println();
i++;
}
}
}
}
输出只是12345
。我不明白为什么它只迭代一次for循环只有一次。
答案 0 :(得分:1)
为while
控件使用另一个变量。
public class Testing {
public static void main(String args[]) {
int k;
for (int i = 1; i < 6; i++) {
for (int j = 0; j < i - 1; j++) {
System.out.print(" ");
}
k = i;
while (k < 6) {
System.out.print(k);
k++;
}
System.out.println();
}
}
}
您可以在此link
中看到这一点这将告诉你:
12345
2345
345
45
5
答案 1 :(得分:0)
注意:当&#39; while循环&#39;增加。这增加了i值大于6.所以下次它终止外循环。那是你的错。
package com.appointment.api;
class Testing {
public static void main(String args[]) {
for (int i = 1; i < 6; i++) {
System.out.println();
for (int j = 0; j < i - 1; j++) {
System.out.print(" ");
}
int x = i;
while (x < 5) {
System.out.print(i);
x++;
}
}
}
}
答案 2 :(得分:0)
以下是java-8问题的实施:
IntStream.rangeClosed(1, MAX)
.forEach(i -> IntStream.rangeClosed(1, MAX)
.mapToObj(j -> j == MAX ? j + "\n" : j >= i ? j : " ")
.forEach(System.out::print)
);
设置MAX = 5
,它将打印您的图案。
输出:
12345
2345
345
45
5