2013-07-19 50 views
-3

以下是C++代碼,可能很重要強調!如果語句中的某些內容導致條件不再爲真/假,條件語句是否會停止執行?

例如,我的意思是,說我有:

bool this = true; 
if(this) 
{ 
    this = false; 
    //other code here 
} 

當「本」爲假,是否意味着中的條件語句將不再執行,因爲條件不再是遇到了,還是將聲明的其餘部分「//其他代碼在這裏」仍然執行?我一直小心不要改變一個條件的狀態,直到我完成了我需要處理的所有條件爲止,但是如果這是必要的話,我很好奇。謝謝你的時間。

+2

當然它不。但考慮到在發佈這樣一個簡單的問題之前,你應該完成自己的研究。 –

+2

'this'是C++中的關鍵字。上面的代碼甚至不會編譯。 – edtheprogrammerguy

+1

爲什麼不試試?實驗並沒有那麼糟糕! – Nbr44

回答

2

沒有,在你的語句中的條件是在測試點在那裏說if(this) [1] - 在那之後,你可以反正你喜歡更改值,並且代碼將繼續。

請注意,這個概念也適用於while(condition) { ... } - condition只在循環開始時被卡住,所以代碼從那裏開始依次繼續,直到它再次返回到循環的開始。

這是一個相當普遍的模式來做到這一點:

need_print_heading = true; 
lines = 0; 

while(more_data) 
{ 

    if (need_print_heading) 
    { 
     need_print_heading = false; 
     print_heading(); 
    } 
    print_data(); 
    linex++; 
    if (lines > 50) need_print_heading = true; 
} 

[1]的代碼this使用您的顯示方式,它是無效的C++,因爲this是在C保留字++。您需要更改名稱才能編譯此代碼。

+0

我知道這是一個保留關鍵字,應該使用更好的。謝謝回覆。 – angrytoad