[英]What does the code print? Exercise in 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;
}
j = 0
兩個 if 語句都不返回值 1,因此h
遞增。j = 1
in (j % 6 == 1)
, 1 % 6 將給出 1 的余數。 語句j % 6
為真,因此 h不遞增。 ('%' 是余數運算符)j = 2
到j = 6
兩個 if 語句都不返回值 1,因此h
遞增。j = 7
in (j % 6 == 1)
, 7 % 6 將給出 1 的余數。 語句j % 6
為真,因此 h不遞增。j = 8
到j = 12
兩個 if 語句都不返回值 1,因此h
遞增。j = 13
in (j % 6 == 1)
, 13 % 6 的余數為 1 。 語句j % 6
為真,因此 h不遞增。j = 14
,語句j == 14 is
真,因此執行 break 語句。 h 將增加: j
= 0, j
= 2 到j
= 6, j
= 8 到j
= 12, j
= 14,總共 12 次。
總計 12 + 1 ( h = 1
) = 13
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.