我有下面的代碼片段,我得到的輸出是4.請解釋我是否需要我= 2或0.我很困惑。以及輸出如何4?在for循環中繼續聲明,如果條件
int main() {
int i=2;
for(i=0;i<2;i++) {
i=i%3;
if(i==2) {
i++;
continue; }
else
++i;
}
printf("%d",i);
}
我有下面的代碼片段,我得到的輸出是4.請解釋我是否需要我= 2或0.我很困惑。以及輸出如何4?在for循環中繼續聲明,如果條件
int main() {
int i=2;
for(i=0;i<2;i++) {
i=i%3;
if(i==2) {
i++;
continue; }
else
++i;
}
printf("%d",i);
}
循環以i = 0
開頭。 if
和else
都是完全一樣的東西。增量i
並繼續。
如果您使用了一點邏輯,整個塊可以減少到i++
(i = i % 3
自i < 2
以來沒有效果)。
無法使用您發佈的代碼獲得4
。
當我在gcc中執行這段代碼時,我只得到o/p爲4。你可以檢查。 –
@BabannaDuggani:在'gcc(海灣合作委員會)4.6.1 20110819(預發佈)'輸出是2. IMO這是PEBKAC最好 – Sujoy
朋友,我真的很抱歉,在for循環它是我<3和錯誤我寫我<2在論壇上。我知道了。謝謝。對不起,無法忍受。 –
輸出不能4
爲您發佈的計劃,因爲當時的循環斷裂的i
值會2
,不4
循環將正好運行一次。
此外,您的代碼永遠不會輸入if
塊,因爲條件爲i==2
,在for
循環內永遠不會出現這種情況,因爲到那時循環將退出。
所以,你的代碼是相同的:
int main() {
int i=2;
for(i=0;i<2;i++) {
i++;
}
printf("%d",i);
}
當我在gcc中執行這段代碼時,我只得到o/p爲4。你可以檢查 –
@BabannaDuggani:你重新檢查你的程序。比較你發佈的這個程序和你在你的電腦上運行的程序。看看他們是否完全一樣! – Nawaz
朋友,我真的很抱歉,在for循環它是我<3和錯誤我寫我<2在論壇。我知道了。謝謝。對不起,無法忍受。 –
不要寫這樣的代碼任何東西,但教育的目的! –
你是什麼意思?你聲明你的int i並賦值2,然後在下一行你賦0(for循環的初始化部分)。如何獲得4作爲輸出超出了我,但我得到2. – DeCaf
如果你得到4,那麼你應該改變你的編譯器。 – quasiverse