跳轉語句:break、continue、goto -《Go語言實戰指南》

在控制流程中,我們有時需要跳出當前循環跳過當前步驟,甚至直接跳轉到指定位置。Go 提供了三種基本跳轉語句:


  • ??break:跳出當前?forswitch?或?select
  • ??continue:跳過本輪循環,進入下一輪。
  • ??goto:無條件跳轉到標簽處。

一、break?—— 立即跳出循環或選擇結構

1. 用于循環中
for?i?:=?0;?i?<?10;?i++?{if?i?==?5?{break}fmt.Println(i)
}

輸出:

0
1
2
3
4
2. 用于?switch?或?select

Go 中的?switch?默認每個分支自動?break,你可以顯式使用?break?提前退出:

switch?x?:=?2;?x?{
case?1:fmt.Println("One")
case?2:fmt.Println("Two")breakfmt.Println("不會執行")
}

二、continue?—— 跳過當前循環,進入下一輪

示例:
for?i?:=?0;?i?<?5;?i++?{if?i?==?2?{continue}fmt.Println(i)
}

輸出:

0
1
3
4

注意:i == 2?時跳過了打印。


三、goto?—— 無條件跳轉

goto?用于直接跳轉到代碼中的標簽,可用于提前退出多層嵌套等場景,但建議慎用,保持代碼結構清晰。

基本用法:
i?:=?0
goto?LABEL
i++?//?這行不會執行LABEL:
fmt.Println("跳轉到了這里")

goto?應用場景:提前跳出多層嵌套
func?search()?{for?i?:=?0;?i?<?3;?i++?{for?j?:=?0;?j?<?3;?j++?{if?i?==?1?&&?j?==?2?{goto?FOUND}}}
FOUND:fmt.Println("找到了!")
}

四、使用建議與注意事項

跳轉語句用途簡述使用建議
break退出當前循環、switch、select推薦用于中斷循環
continue跳過當前循環推薦用于跳過某些條件分支
goto無條件跳轉到標簽慎用,避免破壞結構性邏輯

? 推薦優先使用?break?和?continuegoto?僅用于特定需求(如資源清理、錯誤處理)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82905.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux中find命令用法核心要點提煉

大家好&#xff0c;歡迎來到程序視點&#xff01;我是你們的老朋友.小二&#xff01; 以下是針對Linux中find命令用法的核心要點提煉&#xff1a; 基礎語法結構 find [路徑] [選項] [操作]路徑&#xff1a;查找目錄&#xff08;.表當前目錄&#xff0c;/表根目錄&#xff09;…

MQTT協議詳解:物聯網通信的輕量級解決方案

MQTT協議詳解&#xff1a;物聯網通信的輕量級解決方案 引言 在物聯網(IoT)快速發展的今天&#xff0c;設備間高效可靠的通信變得至關重要。MQTT(Message Queuing Telemetry Transport)作為一種輕量級的發布/訂閱協議&#xff0c;已成為物聯網通信的首選解決方案。本文將深入探…

list基礎用法

list基礎用法 1.list的訪問就不能用下標[]了,用迭代器2.emplace_back()幾乎是與push_back()用法一致&#xff0c;但也有差別3.insert(),erase()的用法4.reverse()5.排序6.合并7.unique()&#xff08;去重&#xff09;8.splice剪切再粘貼 1.list的訪問就不能用下標[]了,用迭代器…

2025年第十六屆藍橋杯大賽軟件賽C/C++大學B組題解

第十六屆藍橋杯大賽軟件賽C/C大學B組題解 試題A: 移動距離 問題描述 小明初始在二維平面的原點&#xff0c;他想前往坐標(233,666)。在移動過程中&#xff0c;他只能采用以下兩種移動方式&#xff0c;并且這兩種移動方式可以交替、不限次數地使用&#xff1a; 水平向右移動…

BGP實驗練習2

需求&#xff1a; 1.AS1存在兩個環回&#xff0c;一個地址為192.168.1.0/24&#xff0c;該地址不能再任何協議中宣告 AS3存在兩個環回&#xff0c;該地址不能再任何協議中宣告 AS1還有一個環回地址為10.1.1.0/24&#xff0c;AS3另一個環回地址是11.1.1.0/24 最終要求這兩…

【溫濕度物聯網】記錄1:寄存器配置

一&#xff0c;及哦地址 基地址base的定義&#xff1a; ↓ 定義完是這個&#xff1a; GPIOA的地址就是以上的代表 2寄存器&#xff1a; 通過bsrr來改變odr寄存器&#xff0c;左移16位就是把0-15位的給移到高位的保留區&#xff0c;這樣就歸零了 3&#xff0c;項目寄存器實操…

MCP項目實例 - client sever交互

1. 項目概述 項目目標 構建一個本地智能輿論分析系統。 利用自然語言處理和多工具協作&#xff0c;實現用戶查詢意圖的自動理解。 進行新聞檢索、情緒分析、結構化輸出和郵件推送。 系統流程 用戶查詢&#xff1a;用戶輸入查詢請求。 提取關鍵詞&#xff1a;從用戶查詢中…

運維體系架構規劃

運維體系架構規劃是一個系統性工程&#xff0c;旨在構建高效、穩定、安全的運維體系&#xff0c;保障業務系統的持續運行。下面從規劃目標、核心模塊、實施步驟等方面進行詳細闡述&#xff1a; 一、規劃目標 高可用性&#xff1a;確保業務系統 724 小時不間斷運行&#xff0c…

zst-2001 上午題-歷年真題 計算機網絡(16個內容)

網絡設備 計算機網絡 - 第1題 ac 計算機網絡 - 第2題 d 計算機網絡 - 第3題 集線器不能隔離廣播域和沖突域&#xff0c;所以集線器就1個廣播域和沖突域 交換機就是那么的炫&#xff0c;可以隔離沖突域&#xff0c;有4給沖突域&#xff0c;但不能隔離廣播域&#xf…

Python之with語句

文章目錄 Python中的with語句詳解一、基本語法二、工作原理三、文件操作中的with語句1. 基本用法2. 同時打開多個文件 四、with語句的優勢五、自定義上下文管理器1. 基于類的實現2. 使用contextlib模塊 六、常見應用場景七、注意事項 Python中的with語句詳解 with語句是Python…

我的五周年創作紀念日

五年前的今天&#xff0c;我在CSDN發布了第一篇《基于VS2015的MFC學習筆記&#xff08;常用按鈕button&#xff09;》&#xff0c;文末那句"歡迎交流"的忐忑留言&#xff0c;開啟了這段充滿驚喜的技術旅程。恍然發覺那些敲過的代碼早已成長為參天大樹。 收獲 獲得了…

Realtek 8126驅動分析第四篇——multi queue相關

Realtek 8126是 5G 網卡&#xff0c;因為和 8125 較為接近&#xff0c;第四篇從這里開始也無不可。本篇主要是講 multi queue 相關&#xff0c;其他的一些內容在之前就已經提過&#xff0c;不加贅述。 1 初始化 1.1 rtl8126_init_one 從第一篇我們可以知道每個 PCI 驅動都注…

使用PHP對接日本股票市場數據

本文將介紹如何通過StockTV提供的API接口&#xff0c;使用PHP語言來獲取并處理日本股票市場的數據。我們將以查詢公司信息、查看漲跌排行榜和實時接收數據為例&#xff0c;展示具體的操作流程。 準備工作 首先&#xff0c;請確保您已經從StockTV獲得了API密鑰&#xff0c;并且…

爬蟲工具與編程語言選擇指南

有人問爬蟲如何選擇工具和編程語言。根據我多年的經驗來說&#xff0c;是我肯定得先分析不同場景下適合的工具和語言。 如果大家不知道其他語言&#xff0c;比如JavaScript&#xff08;Node.js&#xff09;或者Go&#xff0c;這些在特定情況下可能更合適。比如&#xff0c;如果…

C語言while循環的用法(非常詳細,附帶實例)

while 是 C 語言中的一種循環控制結構&#xff0c;用于在特定條件為真時重復執行一段代碼。 while 循環的語法如下&#xff1a; while (條件表達式) { // 循環體&#xff1a;條件為真時執行的代碼 } 條件表達式&#xff1a;返回真&#xff08;非 0&#xff09;或假&#x…

1.短信登錄

1.0 問題記錄 1.0.1 redis 重復 token 問題 每次用戶登錄時&#xff0c;后端會創建一個新的 token 并存入 Redis&#xff0c;但之前登錄的 token 還沒有過期。這可能會導致以下問題&#xff1a; 1. Redis 中存在大量未過期但實際已不使用的 token2. 同一用戶可能有多個有效 …

需求與技術實現不匹配,如何協調

協調需求與技術實現不匹配問題&#xff0c;需要加強技術參與需求階段、推動架構與需求同步設計、建立跨職能溝通機制&#xff0c;其中加強技術參與需求階段是最關鍵的一步。 需求如果脫離技術實際&#xff0c;就容易導致實現困難、資源浪費甚至項目失敗。根據麥肯錫的一項研究&…

java每日精進 5.11【WebSocket】

1.純Websocket實現消息發送 1.1一對一發送 前端 用戶在輸入框輸入消息內容(sendText) 選擇特定接收用戶(sendUserId) 點擊發送按鈕觸發handlerSend方法 構造消息內容JSON: {text: "Hello", // 消息內容toUserId: 123 // 目標用戶ID } 包裝為WebSocket標準格式…

【NextPilot日志移植】params.c解析

params.c 參數說明 params.c 文件的主要作用是定義與 SD卡日志記錄 相關的參數。這些參數用于配置日志記錄的行為&#xff0c;包括日志記錄的時間、內容、存儲管理以及加密設置等。 1. UTC 偏移量 (SDLOG_UTC_OFFSET) PARAM_DEFINE_INT32(SDLOG_UTC_OFFSET, 0);用途&#xf…

jFinal 使用 SolonMCP 開發 MCP(擁抱新潮流)

MCP 官方的 java-sdk 目前只支持 java17。直接基于 mcp-java-sdk 也比較復雜。使用 SolonMCP&#xff0c;可以基于 java8 開發&#xff08;像 MVC 的開發風格&#xff09;&#xff0c;且比較簡單。 1、SolonMCP 簡介 SolonMCP&#xff08;全稱&#xff1a;solon-ai-mcp&#…