猿问

我又来了啊,求解求解

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(j=i ; j<5 ; j++ ) 
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for( k=0 ; k<i*2-1 ; k++)
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;他那个不是说,父循环一次,子循环循环完毕么

那我这样理解,党i=1时,下一个循环j=i=1,而他还有子循环,那应该是先输出一个空格啊,然后再输出一个*


慕神3012965
浏览 1536回答 3
3回答

黄小凡

第二个for和第三个for是没什么关系的,所以会先执行完第二个for才执行第三个for,不会输一个空格再输一个*。for循环的嵌套很简单的,理解清楚就好。

爪哇猿

你自己都知道子循环要循环完毕。。for(j=1;j<5;j++){}这里循环完毕 要输出的是5个空格!之后才输出*

风中打伞的小孩

可以将这段循环程序理解为, 一个循环里面有两条语句,每次条件成立,执行循环,两条语句依次执行, 可是这两条语句又是循环语句,循环需要完全执行才会跳出循环体,即第一条语句执行完毕,下面才开始执行第二条语句
随时随地看视频慕课网APP
我要回答