在接下來的兩段代碼,根據編譯和運行的速度實際上有什麼不同?是否繼續即時?
for (int i = 0; i < 50; i++)
{
if (i % 3 == 0)
continue;
printf("Yay");
}
和
for (int i = 0; i < 50; i++)
{
if (i % 3 != 0)
printf("Yay");
}
個人而言,在有一個以上的打印語句多很多的情況下,我使用第一種方法,以減少對包含代碼的縮進量一直。一直想知道一段時間,所以我發現它是否真的具有視覺效果。
回覆阿爾夫(我不能讓代碼中的註釋工作...)
更準確的我的用法是沿着「handleObjectMovement」功能線的東西,其中將包括
for each object
if object position is static
continue
deal with velocity and jazz
與
for each object
if object position is not static
deal with velocity and jazz
相比,因此我不使用的回報。從本質上講,「如果它不是有關本次迭代,移動的」
我認爲首先在一個函數中處理瑣碎的情況或錯誤情況,使用'return'來**救市**,沒問題。但是「繼續」意味着代碼的讀者必須使用額外的努力來分析。請記住,編寫源代碼並不是要向編譯器傳達它應該做什麼,而是要與其他人或後來的自己溝通你的*意圖*。 –
一個好的編譯器應該將等價源優化成相同的彙編代碼。在任何特定情況下是否真的發生這些事情取決於事先必須知道的太多事情。那麼你爲什麼不自己檢查一下呢?檢查生成的程序集和/或測量時間,你會得到你的答案。 –
兩個原因布蘭科,第一個是壞的,但第二個我覺得是相當不錯的:P 1)我懶 2)有這些類型的問題只是一個谷歌的離開是非常有用的。現在,其他任何奇蹟般的人都有一個SO頁面,他們可以去。 – Randomman159