我想用数字制作一个正方形。这样的东西:
1 2 3 4
2 3 4 5
3 4 5 6
我写了一段代码:
int a=input.nextInt();
for(int i=1; i<=a; i++){
for (int k=1;k<=a;k++){
int c=k+1;
int g=k+2;
System.out.println();
System.out.print(k+" ");
System.out.print(c+" ");
System.out.print(g+" ");
}
System.out.println();
结果是:
1 2 3 4
2 3 4 5
3 4 5 6
1 2 3 4
2 3 4 5
3 4 5 6
那么,错误在哪里?
答案 0 :(得分:2)
您正在第二个循环中打印一个完整的正方形。第一个是生成多个正方形。
试试这段代码:
public static void main(String[] args) {
// int a=input.nextInt();
int a = 4;
for (int i = 1; i <= a; i++) {
for (int k = 0; k < a; k++) {
System.out.print(i + k);
System.out.print(" ");
}
System.out.println();
}
}
答案 1 :(得分:0)
如果您只删除第一个循环,它将只打印一个方格。
int a=input.nextInt();
//for(int i=1; i<=a; i++){ comment this one
for (int k=1;k<=a;k++){
int c=k+1;
int g=k+2;
System.out.println();
System.out.print(k+" ");
System.out.print(c+" ");
System.out.print(g+" ");
}
System.out.println();
//} and this
只有输入为3时才会打印和方形。
1 2 3
2 3 4
3 4 5
为你的方块
public static void main (String[] args) throws java.lang.Exception
{
int a=3;
//for(int i=1; i<=a; i++){
for (int k=1;k<=a;k++){
int c=k+1;
int g=k+2;
int e=k+3;//added
System.out.println();
System.out.print(k+" ");
System.out.print(c+" ");
System.out.print(g+" ");
System.out.print(e+" ");//added
}
System.out.println();
//}
}
输出:
1 2 3 4
2 3 4 5
3 4 5 6
答案 2 :(得分:0)
因为单个循环在你的情况下会很好。
考虑到您将行数作为输入
你的循环应该从i = 1运行到i&lt; = a。
你不需要采取另一个循环只需在循环中打印i,i + 1,i + 2,i + 3。
答案 3 :(得分:0)
试试这个
public static void main(String[] args) {
int a = 4;
for (int i = 1; i <= a-1; i++) {
for (int j = 0; j < a; j++) {
System.out.print(i + j);
System.out.print(" ");
}
System.out.println();
}
}