0
public static void main (String [] args)
{       
    int q, r, s, t, u, v, w, x, y, z;

    for (q=1; q<=10; q++)
    { 
        System.out.print("\t" + q);
    }
    System.out.println();
    for (r=2; r<=20; r += 2)
    {
        System.out.print("\t" + r);
    }
    System.out.println();
    for (s=3; s<=30; s += 3)
    {
        System.out.print("\t" + s);
    }
    System.out.println();
    for (t=4; t<=40; t += 4)
    {
        System.out.print("\t" + t);
    }
    System.out.println();
    for (u=5; u<=50; u += 5)
    {
        System.out.print("\t" + u);
    }
    System.out.println();
    for (v=6; v<=60; v += 6)
    {
        System.out.print("\t" + v);
    }
    System.out.println();
    for (w=7; w<=70; w += 7)
    {
        System.out.print("\t" + w);
    }
    System.out.println();
    for (x=8; x<=80; x += 8)
    {
        System.out.print("\t" + x);
    }
    System.out.println();
    for (y=9; y<=90; y += 9)
    {
        System.out.print("\t" + y);
    }
    System.out.println();
    for (z=10; z<=100; z += 10)
    {
        System.out.print("\t" + z);
    }

}

このプログラムはいかにばかげているように見えますが、必要な形式で乗算表を表示します。(ご覧のとおり)初心者であり、これらのネストされたループを学習しようとすることは、特にチュートリアルで、この掛け算の表をまったく同じ形式で、ネストされた for ループと System.out を使用して記述できると述べている場合は、非常に混乱します。 println. チュートリアルは少しも役に立たず、ネストされた for ループのかなり単純な使用法を提供します。今のところ、このプログラムを単純化する際にどのように適用できるかわかりません....しかし、それはできると言っています。

4

4 に答える 4

2

これは、初心者向けの本で学ぶことです。

for (int i=1;i<=10;i++){
  for (int j=1;j<=10;j++)
     System.out.print("\t"+i*j);
  System.out.println(); 
}
于 2012-10-26T20:42:35.490 に答える
0

これは、配列を使用して期待どおりに機能します

public static void main(String[] args) {
int[][] array = new int[11][11];
for (int i=1; i<array.length; i++) {
for (int j=1; j<array[i].length; j++) {
array[i][j] = i*j;
System.out.print(" " + array[i][j]);
}
System.out.println("");
}
}
于 2012-10-26T20:40:41.453 に答える
0

あなたはこのようなことを意味します: -

   for (int i = 1; i <= 10; i++) {
        for (int j = i; j <= 10 * i; j += i) {
            System.out.print(j + " ");
        }
        System.out.println();
   }
于 2012-10-26T20:41:40.510 に答える
0

これは、きれいな印刷を使用した私の見解です(個々のセルは右/左揃え):

private static void printMultiplicationTable(int m, int n) {
    int[][] arr = new int[m][n];
    int[] maxes = new int[n];

    for (int i = 1; i <= m; i++) {
        for (int j = i, k = 1; j <= n * i; j += i) {
            arr[i-1][k-1] = j;
            if ((maxes[k-1]+"").length() < (j+"").length()) {
                maxes[k-1] = (j+"").length();
            }
            k++;
        }
   }

    for(int i=0; i<arr.length; i++) {
        for(int j=0; j<arr[i].length; j++)
            System.out.print(adjust(arr[i][j], maxes[j], true) + " ");
        System.out.println();
    }
}

private static String adjust(int n, int tot, boolean rightJustify) {
    StringBuffer buff = new StringBuffer();

    for(int i=1; i<=tot - (n + "").length(); i++) {
        buff.append(" ");
    }

    if (rightJustify) {
        buff.append(n);
        return buff.toString();
    } else {
        return n + buff.toString();
    }
}
于 2012-10-26T21:33:08.260 に答える