这是创建一个宽度和高度已设置的正方形,并使用短划线将其打印到输出中,并且运行完美;但我似乎并不完全明白第二个和第三个循环正在做什么,并且它的运行情况如何。
- (void)draw {
for (int w = 1; w <= width; w++) {
printf("-");
}
***
for (int h = 0; h <= height; h++) {
printf("\n");
printf("|");
for (int space = 0; space <= width; space++) {
printf(" ");
}
printf("|");
}
***
for (int w = 1; w <= width; w++) {
if (w == 1) {
printf("\n");
}
printf("-");
if (w == width)
printf("\n");
}
}
}
答案 0 :(得分:1)
“\ n”表示新行,因此第二个循环开始一个新行,然后打印一个竖线(垂直条)。
for (int h = 0; h <= height; h++) {
printf("\n");
printf("|");
第三个循环打印出一堆空格。
for (int space = 0; space <= width; space++) {
printf(" ");
第二个循环然后在框的右边缘打印另一个管道。
printf("|");
第二次循环然后“循环”并重复这一次。
最后一个循环打印一条新行,然后打印一串破折号“ - ”作为底边。
答案 1 :(得分:0)
第一个循环打印出顶部水平虚线。
下一个循环打印每行的两条垂直虚线,首先打印左边的虚线,然后在宽度和打印空间上循环,然后打印右边的短划线。对于正方形高度的每一行都会发生这种情况。
最后,最后一个循环打印出底线的短划线。
答案 2 :(得分:0)
您要问的中间循环基本上是绘制框的左侧和右侧,一个&#39; |&#39;一次,从上到下...它打印第一个|在左侧,然后是一堆空格,然后是第一个|在右侧。然后它向下移动到下一行并重复一遍。
可能更容易想象它:
在第一个循环之后,你会留下这样的东西(假设宽度= 15)
---------------
第二次启动后,它会插入一个换行符并在左侧打印一个|
管道,让您:
---------------
|
然后内部循环插入宽度为的空间(在此表示为o
),并留下这个:
---------------
|ooooooooooooooo
插入空格后,右侧绘制了另一个管道,您将离开:
---------------
| |
这将持续height
次,直到你离开(假设身高= 5):
---------------
| |
| |
| |
| |
| |
最后,最后一个循环打印底部,就像顶部:
---------------
| |
| |
| |
| |
| |
---------------