Java:如何在嵌套的for循环中迭代两个变量

时间:2014-02-01 05:31:28

标签: java for-loop

更新:已解决!答案如下

    System.out.println("Remainders:"); 

    // BEGIN REMAINDER CHART CONTENTS 

    // Prints Denominator list 
        System.out.print("\tn"); 
    for (int denom = 1; denom <= max_denom; denom++) {
        System.out.print("\tn%" + denom);
    }
    System.out.println();


    // prints numerator lines along with remainders 
    for (int numer = 1; numer <= max_numer; numer++) {
      System.out.print(numer);
      for (int denom = 1; denom <= max_denom; denom++) { 
          System.out.print("\t" + numer%denom);
      }
    }
      System.out.println();
  } 
}

您好!我正在使用这个java程序的第二部分 - 其中你使用嵌套的for循环迭代尽可能多的行=到分子。我们的想法是创建剩余的图表作为输出,如下所示:

Remainders:
n   n%1 n%2 n%3 n%4 n%5 n%6
1   0   ?
2   0   ?
3   0   ?
4   0   ?
5   0   ?

今天去教授的办公时间似乎也没有帮助我解决这个问题。有人想指出我正确的方向吗?我已经花了8个多小时,我无法理解我做错了什么......

输出看起来正确但是被扰乱了。

===== ANSWER ===================

没有足够的代表回答我自己的问题,但这是解决方案:

    // BEGIN REMAINDER CHART CONTENTS 

    // Prints Denominator list 
        System.out.print("\tn"); 
    for (int denom = 1; denom <= max_denom; denom++) {
        System.out.print("\tn%" + denom);
    }
    System.out.println();


    // prints numerator lines along with remainders 
    for (int numer = 1; numer <= max_numer; numer++) {
      System.out.print("\t" + numer);
      for (int denom = 1; denom <= max_denom; denom++) { 
          System.out.print("\t" + numer%denom);
      }
      System.out.println();
    }
  } 
}

输出:

n   n%1 n%2 n%3 n%4 n%5 n%6
1   0   1   1   1   1   1
2   0   0   2   2   2   2
3   0   1   0   3   3   3
4   0   0   1   0   4   4
5   0   1   2   1   0   5

美丽 - 非常感谢Njol,我正在试图过度思考那个人!

1 个答案:

答案 0 :(得分:0)

您只需使用不同的循环变量将一个循环放入另一个循环中:

// print header (n   n%1 n%2 etc.)
System.out.print("n");
for (int denom = 1; denom <= max_denom; denom++)
    System.out.print("\tn%"+denom);
System.out.println();

// print table
for (int numer = 1; numer <= max_numer; numer++) {
    System.out.print(numer);
    for (int denom = 1; denom <= max_denom; denom++) {
        System.out.print("\t" + numer%denom);
    }
    System.out.println();
}

请注意,我使用System.out.print在一行上打印文字,然后使用System.out.println()结束该行。