我正在學習C++,我遇到了2種不同類型的代碼,我想知道它們有什麼不同。if()的區別?
是否有任何區別:
if(z==true)
{
cout << "Yes";
}
else
{
cout << "NO";
}
和:
if(z==true)
cout << "YES";
else
cout << "NO";
我正在學習C++,我遇到了2種不同類型的代碼,我想知道它們有什麼不同。if()的區別?
是否有任何區別:
if(z==true)
{
cout << "Yes";
}
else
{
cout << "NO";
}
和:
if(z==true)
cout << "YES";
else
cout << "NO";
沒有,有這兩個之間沒有什麼區別。 {}
僅在有多條語句時才需要,但有些人認爲,如果稍後添加更多語句,始終擁有它們可以降低奇怪錯誤的風險。
所以它只是你可以寫它,但是你想以這兩種方式之一..再多一些:)? 並感謝你:) – ibanezz
你可以使用你想要的那些。在編程中,通常有幾種方法可以做同樣的事情。有時候,儘管它有效,但在某些方面做是不好的做法,因爲在代碼更新後,它有混淆或微妙錯誤的風險。 –
此代碼的行爲方式相同。所以這只是一個風格問題。
許多程序員更喜歡第一個,因爲它更健壯。以不符合預期的方式更改第二個很容易。如果有多個語句(或沒有語句),則{}
是必需的。因此,如果認爲某個部分是有條件/無條件的,那麼對第二個部分的更改很容易導致代碼。特別是在壓痕時馬虎。
我個人認爲如果你有一個好的IDE可以自動格式化代碼,風險很小。
完全沒有區別,第一個例子有一個代碼塊而不是單個語句,它只是一個包含單個語句的塊。前者通常被認爲是更安全的寫作。
技術上不行,但一個是IMO更好的做法。如果您省略大括號,則只執行下一行,而不是執行大括號內的所有內容。您可以看到代碼的快速更改如何引發問題。
說你有
if(z==true)
cout << "YES";
else
x = 47;
,你將它修改爲
else
x = 47;
y = 99;
Y = 99;無條件執行。最好避免這些問題,並使用大括號。
當大括號中的語句不是宏時,也看到了問題:如果在稍後的某個點上它變成了多行宏,那麼if語句突然表現不同(並且你失去了一天的生活調試!)。總之:總是使用大括號。 –
如果您有興趣,還有一段代碼與您呈現的代碼沒有區別。它是'if(z)cout <<「YES」; else cout <<「NO」;你不應該把bools與true或false比較,他們已經是bool了。 – unkulunkulu
另外,你可以(也應該)省略'== true'部分。查看關於[爲了真正做出重大貢獻?](http://programmers.stackexchange.com/questions/12807/make-a-big-deal-out-of-true)上的答案,瞭解各種原因這不好。 – delnan
你從哪些書或教師那裏學習C++沒有向你解釋這個? –