print语句的输出不清楚

时间:2016-05-01 06:41:50

标签: java for-loop

int i, tem = 3;
i = tem;
for (int x = 0; x <= i; x++) {
    for (int j = 1; j< tem; j++) {
        System.out.println("a");
    }
}

以上代码打印a 8次。我无法理解为什么。

5 个答案:

答案 0 :(得分:0)

第一个for从0到3迭代,即 4 次。

第二个for从1到3迭代,即 3 次。

由于第一个for位于第二个内,因此打印将发生3次* 4,即 12

如果您需要进行8次打印,则应在第一个或第二个<=中更改< for

答案 1 :(得分:0)

不应为 8 次打印'a'。以下程序打印'a'表示4 * 3 = 12 次。

 public class HelloWorld{

    public static void main(String []args){
        int i, tem = 3;
        i = tem;

        for (int x = 0; x <= i; x++) {
            for (int j = 1; j <= tem; j++) {
                System.out.println("a");
            }
        }
    }
}

尝试执行上述程序,您将获得正确的'a'(12次)而非8 a的数量。

答案 2 :(得分:0)

for (int j = 1; j < tem; j++)

上述代码适用于j=1j=2,即 2 次并将打印

a
a

现在是for循环

for (int x = 0; x <= i; x++)

将执行上述打印 4 次(x = 0 to 3)。总的来说,您的代码将打印 8 次。

a //x=0
a
a //x=1
a
a //x=2
a
a //x=3
a

答案 3 :(得分:0)

考虑迭代一个x = 0和tem = 3,因此对于条件j = 1和j = 2,内部for循环迭代两次。第二次迭代现在x = 1而tem = 3,在这种情况下内部循环迭代两次,j = 1和j = 2.此过程继续x = 2和x = 3,所以最后第一次循环条件传递给4次,即x = 0,x = 1,x = 2和x = 3,并且内部for循环条件为每个第一个循环条件传递两次,因此它打印4 * 2次,这是8次

答案 4 :(得分:0)

有时候使用调试器是有用的,在这种情况下你不时地循环     在索引中打印以查看/证明&#34;逻辑&#34;

你的代码与for循环中的索引有点陷阱     但您可以替换打印行并验证

  • 外部循环为0至3:4次
  • 内环是1到2:2次

    ergo 4x2次打印char a

实施例

public static void main(String[] args) {
    int i, tem = 3;
    i = tem;
    for (int x = 0; x <= i; x++) {
        for (int j = 1; j < tem; j++) {
            System.out.println("x: " + x + ",j:" + j);
        }
    }
}