【发布时间】:2021-12-05 23:08:57
【问题描述】:
例如,我无法理解为什么会打印以下代码:
在我的脑海中,我认为它会打印出类似的内容:
每行有一个井号。
似乎计数器在内部循环中每次都从 0 开始,然后每次通过更新的值检查条件,而不是从更新的值开始并检查条件。
顺便说一句,我确实希望它打印出它的作用,我只是不明白它的作用背后的逻辑。我认为“变量++”是更新变量然后检查条件。
如果你能帮忙,谢谢!!!
代码如下:
int main(void)
{
int h;
int c;
int w;
do
{
h = get_int("Positive integer: ");
}
while (h < 1 || h > 8);
for (c = 0; c < h; c++)
{
for (w = 0; w <=c; w++)
{
printf("#");
}
printf("\n");
【问题讨论】:
-
第一个循环在打印
\n之前首先执行嵌套循环,这会导致在一行中打印多个。您可以修改它以在嵌套循环中打印printf("#\n")。除此之外 - 对于嵌套循环,通过让它们打印索引来最容易理解它们,例如printf("%d %d", w,c);应该会告诉你循环是如何工作的。
标签: nested-loops