代码打印什么?C语言练习
我不知道为什么这个代码打印的是“h=13”而不是“h=2”。有人有主意吗代码打印什么?C语言练习,c,C,我不知道为什么这个代码打印的是“h=13”而不是“h=2”。有人有主意吗 #include <stdio.h> int main() { int j,h=1; for(j=0;j<50;j++) { if(j%6==1) continue; h++; if(j==7 || j==14 || j==21) break; } printf("h=%d",h); return 0; } #包括 int
#include <stdio.h>
int main() {
int j,h=1;
for(j=0;j<50;j++) {
if(j%6==1) continue;
h++;
if(j==7 || j==14 || j==21)
break;
}
printf("h=%d",h);
return 0;
}
#包括
int main(){
int j,h=1;
对于(j=0;j
当j=0
时,两个if语句都不返回值1,因此h
递增
当中的j=1
(j%6==1)
时,1%6将给出1的余数。语句j%6
为真,因此h不会递增。(“%”是余数运算符)
当j=2
到j=6
时,两条if语句都不返回值1,因此h
递增
当中的j=7
时(j%6==1)
,7%6将给出1的余数。语句j%6
为真,因此h不会增加
当j=8
到j=12
时,两个if语句都不返回值1,因此h
递增
当中的j=13
时(j%6==1)
,13%6将给出1的余数。语句j%6
为真,因此h不会增加
对于j=14
,语句j==14为true,因此执行break语句
h将为:j
=0,j
=2到j
=6,j
=8到j
=12,j
=14,共12次
总共12+1(h=1
)=13自己试试。如果没有编译器,请使用联机编译器。使用断点逐行进行提示:表达式j%6
在j
为7时的计算结果是什么?想想j=7
时会发生什么,想想continue
的意思是什么,而不是“h=2”“.h=2有什么特别之处?为什么这个代码会打印h=2?”?