以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?(请问c怎么理解)
A.for ( i=0; i<10; i++ ) {...}
B.for ( i=0; i<10; ++i ) {...}
C.for ( i=0; i++<10; ) {...}
D.for ( i=0; i<=9; i++ ) {...}
请问c怎么理解
C
A,B,D结束时,i值都为10;C结束时,i值为11
或者说A,B,D都是循环结束后i才加1
C是循环开始时i就加1了
比如代码块是:
for(int i=0;i++<10;)
{
printf("%d",i);
}
A,B,D输出是0到9
而C输出是1到10
C
C 的循环是 i=1,2,3,4,5--10
其他的循环是 i=0,1,2,3,4--9
for ( i=0; i++<10; )
初始循环变量i,初始值为0
循环判断条件,i++<10
i++ < 10 是指先判断i是否小于10,判断之后i的值再自增1
C 看不出来就写来运行看看,ABD都是0、1、2、……9 ,而 C的i是1、2、3、4……10
#include<stdio.h>>
int main(){
int n1=0,n2=0,n3=0,n4=0;
for(int i=0; i<10; i++){
printf("%d\n", i);
n1 += 1;
}
printf("循环%d次\n", n1);
for(int i=0; i<10; ++i){
printf("%d\n", i);
n2 += 1;
}
printf("循环%d次\n", n2);
for(int i=0; i++<10; ){
printf("%d\n", i);
n3 += 1;
}
printf("循环%d次\n", n3);
for(int i=0; i<=9; i++){
printf("%d\n", i);
n4 += 1;
}
printf("循环%d次\n", n4);
return 0;
}
A、B、D循环10次;C循环11次。