【GO语言基础】控制流

news2025/1/10 11:56:13

系列文章目录

【Go语言学习】ide安装与配置
【GO语言基础】前言
【GO语言基础】变量常量
【GO语言基础】数据类型
【GO语言基础】控制流


文章目录

  • 系列文章目录
  • 条件语句
    • if-else 结构
    • 判断一个字符串是否为空:
    • switch结构
  • 循环结构
    • for 循环(C风格):
    • for-range循环
  • 控制语句
  • 使用注意


条件语句

if-else 结构

//if结构
if condition {  
    // 执行代码块  
}

//if else结构
if condition {  
    // 执行代码块1  
} else {  
    // 执行代码块2  
}

if结构
if 语句:用于根据条件执行代码块

package main

import "fmt"

func main() {
	var a int = 7
	var b int = 6
	if a > b {
		fmt.Println("a较大")
	}
}

if else结构
else 语句:与 if 语句一起使用,当 if 的条件不满足时执行。

package main

import "fmt"

func main() {
	var a int = 7
	var b int = 6
	if a > b {
		fmt.Println("a较大")

	} else {
		fmt.Println("b较大")
	}

}

在这里插入图片描述

判断一个字符串是否为空:

1.if str == “”

str := "Hello, World!"
if str == "" {
    fmt.Println("字符串为空")
} else {
    fmt.Println("字符串不为空")
}

2.len(str)==0

str := "Hello, World!"
if len(str) == 0 {
    fmt.Println("字符串为空")
} else {
    fmt.Println("字符串不为空")
}

switch结构

switch 语句:用于根据表达式的值选择执行不同的代码块。
Go的switch语句与其他语言有些不同,不需要显式添加break语句,它会自动终止执行。

switch expression {  
    case value1:  
        // 执行代码块1  
    case value2:  
        // 执行代码块2  
    default:  
        // 执行默认代码块  
}
package main

import "fmt"

func main() {
	var a int = 58

	switch true {
	case a > 50:
		fmt.Println("a在50-100之间")
	case a > 100:
		fmt.Println("a的值大于100")
	}
}

在这里插入图片描述

循环结构

for 循环(C风格):

for 循环:用于重复执行一段代码块,通常用于迭代。
初始化、条件、后续操作。

结构:

for 初始化; 条件; 后续操作 {  
    // 执行循环体代码  
}

示例:

package main

import "fmt"

func main() {
	//打印1到10
	for i := 1; i <= 10; i++ {
		fmt.Println(i)
	}
}

for-range循环

for-range 循环:用于迭代数组、切片、字符串、映射等数据结构的元素。

package main

import "fmt"

func main() {
    // 创建一个整数切片
    numbers := []int{1, 2, 3, 4, 5}

    // 使用for range遍历切片,并打印每个元素的值
    for index, value := range numbers {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}

在这里插入图片描述

控制语句

break 语句:用于跳出当前循环(for 或 switch)。
continue 语句:用于跳过当前循环迭代,进入下一次迭代。只能在 for 循环中使用。

package main

import (
	"fmt"
	"strconv"
)

func main() {
	for {
		fmt.Print("请输入整数: ")
		var inputStr string
		fmt.Scanln(&inputStr)

		// 尝试将输入的字符串转换为整数
		inputInt, err := strconv.Atoi(inputStr)
		if err != nil {
			fmt.Println("请输入正确的整数")
			continue // 输入不是有效整数,继续下一次循环
		}

		// 输出1到输入数据的序列
		for i := 1; i <= inputInt; i++ {
			fmt.Println(i)
		}
	}
}

package main

import "fmt"

//输出偶数
func main() {
	for i := 1; i <= 10; i++ {
		if i%2 == 0 {
			fmt.Println(i)
		} else {
			continue //跳出13579,输出偶数
		}
	}
}

在这里插入图片描述

使用注意

  1. 关键字 if 和 else 之后的左大括号 { 必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行。
    错误写法
if x{
}
else {  // 无效的写法
}
  1. 返回某个值以及 true 表示成功;返回零值(或 nil)和 false 表示失败,在上面实例中我们使用nil判断是否为数字。
  2. 死循环时注意跳出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/994707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS 实现让最后一排元素向左对齐并且整体要居中的几种方式

背景 好久没写 CSS 了&#xff0c;最近产品提了个样式需求&#xff0c;让列表最后一排的元素要向左对齐&#xff0c;而不是居中分配&#xff0c;如图&#xff1a; 由于项目采用 flex 布局&#xff0c;一开始想到的是直接给容器加个 justify-content: flex-start 看起来确实…

【C++】day3学习成果:类

1.自行封装一个栈的类&#xff0c;包含私有成员属性&#xff1a;栈的数组、记录栈顶的变量 成员函数完成&#xff1a;构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小 头文件stack.h: #ifndef STACK_H #define STACK_H#include …

计算机专业毕业设计项目推荐01-生产管理系统(JavaSpringBoot+原生Js+Mysql)

生产管理系统&#xff08;JavaSpringBoot原生JsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以…

LLM 位置编码及外推

RoPE https://zhuanlan.zhihu.com/p/629681325 PI 位置插值&#xff08;POSITION INTERPOLATION&#xff09;显著改善RoPE的外推能力。你只需要对PT&#xff08;pretraining)模型fine-turing最多1000步就能实现。PI是通过将线性的缩小了输入位置的索引使其匹配原始上下文窗口…

【Java 基础篇】Java ArrayList 指南:无所不能的数据伴侣

Java 是一门流行的编程语言&#xff0c;拥有丰富的集合类库&#xff0c;其中之一是 ArrayList。ArrayList 是 Java 集合框架中的一个重要类&#xff0c;它允许我们以动态数组的方式存储和操作数据。无论你是初学者还是有一定经验的开发者&#xff0c;本篇博客都将为你详细介绍 …

怎样吃透一个java项目?

前言 对于刚开始看视频敲代码&#xff0c;最忌讳的便是一上来就完全照着视频做&#xff0c;这么做就算完完全全的跟着视频做出来一个项目&#xff0c;始终都无法将里面具体的知识化为己有&#xff0c;单纯来说只是简单的复刻&#xff0c;视频的作者本身是不会对他在做该项目过…

TouchGFX之自定义触发条件和操作

通过TouchGFX Designer&#xff0c;您可以自己定义具有触发条件和操作的交互组件。 自定义容器创建自定义触发条件&#xff1a;通过自定义容器的属性选项卡添加自定义触发条件 使用交互系统发送自定义触发条件&#xff1a; 通过自定义容器的“交互”选项卡&#xff0c;创建新的…

【工具使用】Dependency Walker使用

一&#xff0c;简介 在工作过程中常常会遇到编译的dll库运行不正常的情况&#xff0c;那就需要确认dll库是否编译正常&#xff0c;即是否将函数编译到dll中去。今天介绍一种查看dll库中函数定义的工具——Dependency walker。 二&#xff0c;软件介绍 Dependency Walker是一…

centos7安装kubernets集群

一、准备工作 准备三台虚拟机&#xff0c;centos7系统 二、系统配置 1. 修改主机名 # 三台机器都需要执行 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node22. 修改hosts文件 # 三台机器都需要执行 [rootk8s-…

微信小程序开发教学系列(2)- 抖音小程序开发基础

2.1 抖音小程序的基本组成部分 抖音小程序的目录结构非常简单&#xff0c;主要包含以下几个核心文件和文件夹&#xff1a; app.json 文件&#xff1a;用于配置小程序的全局配置&#xff0c;包括窗口样式、页面路径、网络请求设置等等。pages 文件夹&#xff1a;用于存放所有的…

智慧工地:实现作业区域安全管控

智慧工地是围绕工程现场人、机、料、法、环及施工过程中质量、安全、进度、成本等各项数据满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效。 建设工程安全文明施工与质量提升,全方位的监测施工人员、各类器械设备、消防安全隐患&#xff0c;并提前对风险进行预警…

高校网络安全体系建设及零信任安全架构应用的探索

网络安全是高校信息化建设的重中之重&#xff0c;它同时也随着高校信息化的快速发展而不断面临新的挑战。因此&#xff0c;要用发展的眼光去看待网络安全&#xff0c;体系化推进网络安全体系建设。山东师范大学校园信息化经过10多年的建设发展&#xff0c;在网络安全上探索出了…

博客系统(升级(Spring))(一)创建数据库,创建实例化对象,统一数据格式,统一报错信息

博客系统&#xff08;一&#xff09; 博客系统创建项目 建立数据库结构链接服务器和数据库和Redis 创建实例化对象统一数据结构结构 统一报错信息 博客系统 博客系统是干什么的&#xff1f; CSDN就是一个典型的博客系统。而我在这里就是通过模拟实现一个博客系统&#xff0c;这…

SAP中的新旧事务码

SAP中的新旧事务码 SAP随着新版本的发布&#xff0c;我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE&#xff0c;新TCODE有很多的新特性和新功能。在这个这种情况下&#xff0c;很多旧TCODE就会被废弃。我们如何查找这个替换呢&#xff1f; …

如何使用OpenGL画出ROS rviz那样的点云可视化效果

【请尊重原创&#xff01;转载和引用文章内容务必注明出处&#xff01;未经许可上传到某文库或其他收费阅读/下载网站赚钱的必追究责任&#xff01;】 ROS rviz可以将点云以多种形式渲染出来比较漂亮&#xff0c;尤其是根据intensity渲染点云不同的色彩和亮度的功能比较好&…

List集合详解

目录 1、集合是什么&#xff1f; 1.1、集合与集合之间的关系 2、List集合的特点 3、遍历集合的三种方式 3.1、foreach(增强佛如循环遍历) 3.2、for循环遍历 3.3、迭代器遍历 4、LinkedList和ArrayList的区别 4.1、为什么ArrayList查询会快一些&#xff1f; 4.2、为什么LinkedLi…

2023大数据挑战赛全国六强团队获奖经验+ppt分享(五)

团队名称 会魔法的老人 团队成员 刘克林&#xff08;重庆邮电大学&#xff09; 敖宇&#xff08;重庆邮电大学&#xff09; 杨敏&#xff08;重庆邮电大学&#xff09; 团队名次 全国第二名 赛题描述说明介绍 2023大数据挑战赛赛题说明决赛评分标准回顾 参赛分享与收获 本次大赛…

x86体系结构(WinDbg学习笔记)

寄存器 eaxAccumulator累加器ebxBase register基寄存器ecxCounter register计数器寄存器edxData register - can be used for I/O port access and arithmetic functions数据寄存器-可用于I/O端口访问和算术函数esiSource index register源索引寄存器ediDestination index reg…

第50节:cesium 绘制指定类型区域(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><el-button-group class="top_item"><el-button type=

fatedier/frp内网穿透详细安装及使用教程

《参考地址》 fatedier/frp是一款开源的主要使用Go语言开发的内网穿透工具。主要分为服务端&#xff08;frps&#xff09;和客户端&#xff08;frpc&#xff09;。 简单理解&#xff1a;服务端&#xff08;frps&#xff09;就是部署到公网ip服务器提供给客户端&#xff08;frpc…