菜鸟想问问,是先执行循环体再判断if,还是边循环边判断? (下面是老师上课讲的排序改进后更高效方案)

菜鸟想问问,是先执行循环体再判断if,还是边循环边判断? (下面是老师上课讲的排序改进后更高效方案) #include int main() {int i,j,a[6]={5,4,7,6,2,3},t,p; for(i=0;i<=4;i++) {p=i; for(j=i+1;j<=5;j++) if(a[p]>a[j]) p=j; if(p!=i) {t=a[i];a[i]=a[p];a[p]=t;}} for(i=0;i<6;i++) printf("%d ",a[i]); return 0; }

你这排版看吐了,提问题请用代码段写入代码。初学就老老实实的把{}补上,别偷懒,加上去之后,你就不会这么问是什么先执行了。给你整理下,从上到下,有语句后面{}的先执行{}里面的内容

int main()
{
    int i,j,a[6]= {5,4,7,6,2,3},t,p;
    for(i=0; i<=4; i++)
    {
        p=i;
        for(j=i+1; j<=5; j++)
        {
            if(a[p]>a[j])
            {
                p=j;
            }
        }
        if(p!=i)
        {
            t=a[i];
            a[i]=a[p];
            a[p]=t;
        }
    }
    for(i=0; i<6; i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}