0

我正在练习用 Java 编写循环。这是我到目前为止所拥有的:

    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
System.out.println ("Num  "+"Square  "+"Num  "+"Square  "+"Num  "+"Square  "+"Num  "+"Square  ");
    for (int x = 1; x<=20; x++) {
                a = x * 1;
                b = 20+a;
                c = 40+a;
                d = 60+a;
               for (int y = 1; y <= 1; y++) {
System.out.println (a + "     " + (a * a) + "      " + b + "   " + (b * b) + "      " + c +
             "     " + (c * c) + "      " + d + "     " + (d * d));
              }

         }

我根本不想更改代码(这意味着我不想添加比我已经拥有的更复杂的东西),但我希望列对齐。当数字开始以数字增加时,显然间距会变得混乱。有想法该怎么解决这个吗?

编辑:要回答您的问题,我对此很陌生,并且没有自学过更多。我非常确定有更好的方法可以做到这一点,但我只是在练习我的 for 循环。任何人,谢谢你的帮助。

4

4 回答 4

1

您可以使用 tab( \t) 对其进行格式化。双标签将为您的情况提供更多空间。

// Changed Num to Number - Out of habit
System.out.println("Number\t\t" + "Square\t\t" + "Number\t\t" + "Square\t\t" + "Number\t\t" + "Square\t\t" + "Number\t\t" + "Square");

System.out.println(a + "\t\t" + (a * a) + "\t\t" + b + "\t\t" + (b * b) + "\t\t" + c + "\t\t" + (c * c) + "\t\t" + d + "\t\t" + (d * d));
于 2013-03-12T04:21:44.897 回答
1
public String appendBlankSpace(int val){
String returnValue=Integer.toString(val);
int lengthTobeAppend=10-returnValue.length();
//Here you can use any number instead of 10.It is for space allocated for a column

for(int i=1;i<=lengthTobeAppend;i++){
returnValue= " " + returnValue;
}

return returnValue;
}

现在你可以使用,

System.out.println (appendBlankSpace(a) + appendBlankSpace(a * a) +       appendBlankSpace(b) + appendBlankSpace(b * b) +  appendBlankSpace(c) + appendBlankSpace(c *     c) + appendBlankSpace(d) + appendBlankSpace(d * d));

我希望它会帮助你。

于 2013-03-12T04:29:13.173 回答
0

您可以将 a、b、c、d 值存储在数组中,例如内部循环

 for (int x = 1; x<=20; x++) {
                a = x * 1;
                b = 20+a;
                c = 40+a;
                d = 60+a;
               int [] array = {a,b,c,d}

               //using enhanced for loop
               for(int ele : array){
                     System.out.println(ele +"\t\t"+ ele*ele)
                 } 
}

输出将如下所示:

2 4

3 9

4 16

于 2013-03-12T04:21:59.840 回答
0

使用 printf。

public class Squarely {
    public static void main(String[] args) {
        for (int x = 1; x <= 20; ++x) {
            int a = x, b = 20+x, c = 40+a, d = 60+a;
            System.out.printf("%6d %6d %6d %6d %6d %6d %6d %6d%n",
                    a, a*a, b, b*b, c, c*c, d, d*d);
        }
    }
}
于 2013-03-12T04:41:15.633 回答