此For Loop如何以这种方式打印?

时间:2020-11-04 21:57:54

标签: java

我正在学习编码,今天我尝试了这个程序

for (cnt = 1; cnt <= 6; cnt++) {
    for (int j = cnt; j <= 6; j++) {
        System.out.print("*");
    }
    System.out.println();
}

我不明白它是如何印刷倒金字塔的

******
*****
****
***
**
*

能给我解释一下吗?

4 个答案:

答案 0 :(得分:0)

那是因为int j = cnt其中cnt增加,所以第二个循环将随着cnt增加而减少迭代。考虑一下
cnt = 1时,第二个循环将打印6次
cnt = 2时,第二个循环将比以前少打印一个时间。等等。这就是要打印的内容:

******
*****
****
***
**
*

*的数量每行减少一。

答案 1 :(得分:0)

cnt = 1时

j = 1 => Print * => The line becomes *
j = 2 => Print * => The line becomes **
j = 3 => Print * => The line becomes ***
j = 4 => Print * => The line becomes ****
j = 5 => Print * => The line becomes *****
j = 6 => Print * => The line becomes ******
After this line breaks

cnt = 2时

j = 2 => Print * => The line becomes *
j = 3 => Print * => The line becomes **
j = 4 => Print * => The line becomes ***
j = 5 => Print * => The line becomes ****
j = 6 => Print * => The line becomes *****
After this line breaks

因此,在cnt的两次迭代之后,您将获得以下模式:

******
*****

这样,cnt的迭代将达到6,您将获得反向金字塔图案

答案 2 :(得分:0)

您的外部循环正在创建行。内循环打印j-cnt *符号。由于cnt在打印的每一行上都在上升,因此j-cnt在每次外循环迭代时都在减少。因此,每行打印的符号越来越少。

答案 3 :(得分:0)

在外循环的第一次迭代中,cnt的值为1,在内循环中的j被分配了cnt的值为{{1} },因此内部循环将从1迭代到1(包括6星)。

在外部循环的第二次迭代中,6的值为cnt,内部循环中的2被分配了j的值为{{1} },因此内部循环将从cnt迭代到2(包括5星)。

在外循环的第三次迭代中,2的值为6,在内循环中的cnt被分配了3的值为{{1} },因此内部循环将从j迭代到cnt(包括4和4)。

...

在外循环的第六次迭代中,3的值为3,在内循环中的6被分配了cnt的值为{{1} },因此内部循环将从6迭代到j(包括这颗星)。