Go 語言的控制結構:條件與循環

Go 語言提供了豐富的控制結構,使得開發者可以編寫出具有復雜邏輯的程序。這些控制結構包括用于條件分支的 if-elseswitch 語句,循環控制的 for 語句,以及用于控制循環執行流的 breakcontinue 關鍵字。此外,Go 語言還支持 goto 語句,允許跳轉到程序的任意位置。


文章目錄

      • 1、條件控制
        • 1.1、if-else 結構
        • 1.2、switch 結構
        • 1.3、select 結構
      • 2、循環控制
        • 2.1、for 結構
        • 2.2、break 和 continue
        • 2.3、goto 語句
      • 3、使用實例


1、條件控制

1.1、if-else 結構

Go 的 if-else 結構用于基于條件執行不同的代碼塊。這是最常見的條件控制結構,它不要求條件兩側的括號,這樣簡化了代碼的視覺復雜度。例如:

if condition {// 執行代碼
} else {// 執行其他代碼
}
1.2、switch 結構

switch 是另一種條件控制結構,用于基于不同的條件執行不同的代碼塊。switch 語句比多個 if-else 更清晰,易于管理。例如:

switch var1 {
case val1:// 執行代碼
case val2:// 執行其他代碼
default:// 默認執行代碼
}
1.3、select 結構

Go 語言特有的 select 結構,通常與 channel 操作配合使用,允許等待多個通道操作。

2、循環控制

2.1、for 結構

Go 語言中的 for 是唯一的循環結構,非常靈活,可用于創建各種循環:

// 類似傳統 for 循環
for init; condition; post { }// 類似 while 循環
for condition { }// 無限循環
for { }

使用 range 關鍵字,for 可以迭代數組、切片、字符串、map 或通道(channel)。這種迭代方式是處理集合數據的強大工具。

2.2、break 和 continue

break 可以終止最近的循環,continue 則跳過當前循環的剩余代碼,直接開始下一次迭代。

2.3、goto 語句

雖然通常不推薦使用 goto 語句,因為它可能會使代碼結構變得難以理解和維護,但在某些特定情況下,goto 可以提供一種方便的方式來跳出多重嵌套的循環。


3、使用實例

package mainimport ("fmt""runtime"
)func main() {// 示例:使用 if-else 結構num := 10if num%2 == 0 {fmt.Println(num, "is even")} else {fmt.Println(num, "is odd")}// 示例:使用 switch 結構os := runtime.GOOSswitch os {case "darwin":fmt.Println("OS X.")case "linux":fmt.Println("Linux.")default:fmt.Printf("%s.\n", os)}// 示例:使用 for-range 結構strings := []string{"hello", "world"}for i, s := range strings {fmt.Println(i, s)}
}

這個概述展示了 Go 語言中控制結構的基本用法,實現了條件判斷、循環控制和基于條件的代碼執行,這些是任何復雜程序所必需的。通過上面的示例,我們可以看到 Go 語言在保持簡潔語法的同時,也提供了強大的程序控制能力。

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

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

相關文章

約瑟夫游戲(編號+密碼)

編號為1、2、3、...、N的N個人按順時針方向圍坐一圈,每人持有一個密碼(正整數)。從指定編號為1的人開始,他的密碼為M的初始值,按順時針方向從1號自己開始順序報數,報到指定數M時停止報數,報M的人…

i18n-demo

一、demo 1、資源文件準備 resources下放各個語言文件,直接放resources下都行。我新建一個文件夾,

房地產vr全景展示交互視頻讓購房者更有參與感

在當今房地產市場中,購房者的需求日益多樣化和個性化。為滿足這一趨勢,我們創新性地將VR虛擬現實技術應用于樓盤宣傳,為購房者帶來前所未有的沉浸式購房體驗。 一、地理位置全景展示 通過實景拍攝與VR技術的結合,我們為購房者呈現…

day26-單元測試

1. 單元測試Junit 1.1 什么是單元測試?(掌握) 1.2 Junit的特點?(掌握) 1.3 基本用法:(掌握) 實際開發中單元測試的使用方式(掌握) public class …

C語言,排序

前言 排序,可以說是數據結構中必不可缺的一環。我們創造數據存儲它,要想知道數據之間的聯系,比較是必不可少的。不然,費勁心思得來的數據若是不能有更多的意義,那么拿到了又有什么用? 排序是計算機內經常進…

風險投資公司正在幫助小投資者購買Anthropic、OpenAI等熱門公司的股票

近年來,風險投資公司對于人工智能(AI)領域的公司,如Anthropic、Groq、OpenAI等,表現出了極高的投資熱情。這些公司因為它們在AI技術方面的創新而備受矚目。但是,對于很多小投資者來說,由于資金有…

[C#]使用C#部署yolov8的目標檢測tensorrt模型

【測試通過環境】 win10 x64 vs2019 cuda11.7cudnn8.8.0 TensorRT-8.6.1.6 opencvsharp4.9.0 .NET Framework4.7.2 NVIDIA GeForce RTX 2070 Super 版本和上述環境版本不一樣的需要重新編譯TensorRtExtern.dll,TensorRtExtern源碼地址:TensorRT-CShar…

期權的權利金怎么算的

期權權利金的計算涉及多個因素,包括敲定價格、到期時間以及整個期權合約的具體情況。期權的權利金具體的計算公式和因素可能因不同的期權合約和市場條件而有所不同,下文為大家介紹期權的權利金怎么算的 ?本文來自:期權醬 一、期權…

【LeetCode】二叉樹oj專題

如有不懂的地方,可查閱往期相關文章! 個人主頁:小八哥向前沖~ 所屬專欄:數據結構【c語言】 目錄 單值二叉樹 對稱二叉樹 計算二叉樹的深度 二叉樹的前序遍歷 相同二叉樹 另一棵樹的子樹 二叉樹的構建和遍歷 翻轉二叉樹 判…

spring boot 中的異步@Async

spring boot 開啟異步調用 1、啟動類上添加EnableAsync注解,表示啟動異步 2、在具體實現異步的方法上添加Async注解 package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli…

YOLOv3+mAP實現金魚檢測

YOLOv3mAP實現金魚檢測 Git源碼地址:傳送門 準備數據集 按幀數讀取視頻保存圖片 video2frame.py使用labelimg標注工具對圖片進行標注統一圖片大小為 416x416,并把標簽等信息寫成.xml文件 conver_point.py讀取縮放后的標簽圖片,轉為左上角右下…

如何快速部署上線項目

CSDN 的小伙伴們,大家好呀,我是蒼何。 今天在群里面看到有小伙伴反饋說,面試的時候一被問到簡歷中的項目還沒上線,就不繼續問了,感覺挺奇葩的,要知道就校招來說,項目本身大部分都是練手的項目&…

Linux基礎1-基本指令3

上篇文章我們說到了文件,pwd,touch,mkdir等知識。 Linux基礎1-基本指令2(你真的了解文件嗎?)-CSDN博客 本文繼續梳理其他基礎命令 1.本章重點 1.刪除一個空目錄命令rmdir 2.刪除一個文件指令rm(重要!) 3.man命令&am…

Lf工作流自定義html節點

1.定義js文件CustomCircle.js import { HtmlNode, HtmlNodeModel } from "logicflow/core"; class UmlModel extends HtmlNodeModel {setAttributes() {this.text.editable false; // 禁止節點文本編輯// 設置節點寬高和錨點const width 120;const height 70;thi…

做視頻號小店保證金要交多少?保證金提現條件是什么?

大家好,我是噴火龍。 做視頻號小店也是需要繳納保證金的,保證金分為類目保證金和浮動保證金。 先來說說類目保證金,類目保證金由視頻號小店主體資質類型和經營商品類目決定。 類目保證金有以下三點需要注意: 1. 如果你要申請新…

CentOS 7~9 救援模式恢復root密碼實戰指南

在管理Linux服務器時,忘記root密碼是一件棘手的事情,但幸運的是,CentOS提供了救援模式來幫助我們重置root密碼。本文將詳細介紹如何通過GRUB引導菜單進入緊急模式(或稱為救援模式),進而恢復root用戶的密碼。…

Python量化交易學習——Part4:基于基本面的單因子選股策略

技術分析與基本面分析是股票價格分析最基礎也是最經典的兩個部分。技術分析是針對交易曲線及成交量等指標進行分析,基本面分析是基于公司的基本素質進行分析。 一般來說選股要先選行業,在選個股,之后根據技術分析選擇買賣節點,因此針對行業及個股的基本面分析是選股的基礎。…

【ARMv7-A】——WFE(wait for event)

文章目錄 WFE基本概念工作原理事件類型使用場景WFIWFEWFE 和 WFI 相同點WFE 和 WFI 不同點觸發條件事件標志影響多核系統中的應用使用場景:代碼實例linux 內核中的 WFI 指令WFE WFE 即 Wait for ev

# 全面解剖 消息中間件 RocketMQ-(4)

全面解剖 消息中間件 RocketMQ-(4) 一、RocketMQ 順序消息分析 1、消息有序:指的是可以按照消息的發送順序來消費(FIFO)。RocketMQ 可以嚴格的保證消息有序,可以分為分區有序或者全局有序。 2、順序消費的原理解析 在默認的情…

身份證真假查詢API、C#身份證識別、駕駛證識別接口

線上平臺想要在節省成本、節省時間的前提下實現身份證實名認證的功能,可以考慮云服務平臺,例如翔云API開放平臺,專注于數字化接口服務的提供。翔云身份證實名認證接口,搭配翔云身份證識別接口,實時聯網秒速核驗身份證信…