我正在学习编码,今天我尝试了这个程序
for (cnt = 1; cnt <= 6; cnt++) {
for (int j = cnt; j <= 6; j++) {
System.out.print("*");
}
System.out.println();
}
我不明白它是如何印刷倒金字塔的
******
*****
****
***
**
*
能给我解释一下吗?
答案 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
(包括这颗星)。