我無法理解for回圈中檢查的條件和if條件之間的區別。兩者的行為方式不同嗎?
當我寫:
int num = 10;
for(int i = 0; i < 15 && num; i ){
cout << i << " ";
}
它只檢查是否i < 15和不檢查i < num并列印從 0 到 14 的所有方式。
但與此同時,如果我寫下這樣的if條件:
if(x < 15 && num)
它同時檢查x < 15和x < num。
uj5u.com熱心網友回復:
&& num不做你認為它做的事。如果您期望它的意思是“現在進行前面的操作,將(任何)替換num為其中并再次執行”,那么不,它遠非如此。
它檢查 x<15 和 x<num
你錯了,它不會那樣做。測驗num == 12, x == 13說服自己。如果您想同時檢查x < 15和x < num,只需這樣說:
if (x < 15 and x < num)
或者你可以使用&&
if (x < 15 && x < num)
(&&并且and是完全相同事物的兩種拼寫)。
uj5u.com熱心網友回復:
回圈的條件(無論是for回圈、while回圈還是do..while回圈)和 的條件if都是布爾背景關系,因此以完全相同的方式作業。
您的兩個斷言都是錯誤的,因為編譯器從不檢查任何一個,i < num或者x < num在您的示例中,這不是&&作業原理。
在for(int i = 0; i < 15 && num; i )中,條件被決議為(i < 15) && (num != 0),在您的示例中是 effectively(i < 15) && true或簡單地(i < 15)。如果你想檢查(i < num)那么你需要這樣編碼:
for(int i = 0; i < 15 && i < num; i )
或者:
for(int i = 0; i < min(15,num); i )
在if(x < 15 && num)中,條件被決議為(x < 15) && (num != 0),在您的示例中是 effectively(x < 15) && true或簡單地(x < 15)。如果你想檢查(x < num)那么你需要這樣編碼:
if(x < 15 && x < num)
或者:
if(x < min(15,num))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/536592.html
標籤:C for循环if语句
