首頁 > 後端開發 > C++ > 主體

如何從 C 中的 Switch 語句中退出循環:使用 `goto` 或標誌?

Mary-Kate Olsen
發布: 2024-10-27 02:41:30
原創
690 人瀏覽過

How to Exit a Loop from Within a Switch Statement in C  : Using `goto` or a Flag?

從 Switch 內退出循環的替代方法

在某些情況下,可能需要從內部終止封閉循環switch 語句。雖然使用標誌是常見的方法,但 C 提供了一種替代解決方案:使用 goto 語句。

困境:

考慮以下程式碼片段:

<code class="cpp">while(true) {
    switch(msg->state) {
    case MSGTYPE: // ...
        break;
    // ... more stuff ...
    case DONE:
        // **HERE, I want to break out of the loop itself**
    }
}</code>
登入後複製

目標是當 msg->state 等於 DONE 時立即退出循環。

使用 goto:

C 允許使用goto 語句明確跳到程式碼中的特定位置。可以利用它來實現所需的行為:

<code class="cpp">while ( ... ) {
    switch( ... ) {
     case ...:
         goto exit_loop;  // Jump to this location when msg->state is DONE

   }
}

exit_loop: ;  // Label for jump target</code>
登入後複製

在此修改後的程式碼中,當 msg->state 等於 DONE 時,goto 語句將執行流定向到 exit_loop 標籤。因此,這會退出 switch 和封閉循環。

注意: 使用標籤 (:) 來識別 goto 語句的目標非常重要。不加區別地使用 goto 可能會導致義大利麵條式程式碼和可維護性問題。

以上是如何從 C 中的 Switch 語句中退出循環:使用 `goto` 或標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!