【5】控制语句

news2025/2/2 16:33:57

指针

  1. Go中不用“->”运算符,用的是 “.” 选择符
  2. “&”:取地址符
  3. “*”:访问目标对象符
  4. 默认值为:nil (不是NULL)
  5. ++、- -:作为语句,只可以自己放一行,而且放在右边(不是表达式)

简单代码:

package main

import (
	"fmt"
)

func main() {

   var a = 1
   var p *int = &a
   fmt.Println(p)
   fmt.Println(*p)
}

结果:
在这里插入图片描述

if

在这里插入图片描述

package main

import (
	"fmt"
)

func main() {
   var a = 10              //这里的a是全局变量
   if a:=1; a>0{           //if中不可var,因为是局部变量,和外面的全局变量分开,而且大括号不可以放在下面
      fmt.Println(a)       //a=1
   }
   fmt.Println(a)           //a=1
}

注意:
全局变量和局部变量的区别
大括号的位置

for

在这里插入图片描述

package main

import (
	"fmt"
)

func main() {
   var a = 1
   for{
      a++		//记住这里要单独一行
      if a>3{
         break
      }
      fmt.Println(a)
   }
   fmt.Println("Over")
}

在这里插入图片描述

package main

import (
	"fmt"
)

func main() {
   a := "string"
   l := len(a)          //这里有调用len函数,最好不要放进循环的判断中,不然每次都要重新加载,耗时
   for i:=0; i<l; i++{
      
      fmt.Println(a)
   }
   fmt.Println("Over")
}

在这里插入图片描述

switch

在这里插入图片描述

简单代码:

package main

import (
	"fmt"
)

func main() {
   a := 1
   switch{
   case a>=0:
      fmt.Println("a=0")
   case a>=1:
      fmt.Println("a=1")
   default:
      fmt.Println("None")
   }

}

找到了一个符合的,就会自动break
在这里插入图片描述

如果想要运行下一个case,需要写:fallthrough

package main

import (
	"fmt"
)

func main() {
   a := 3
   switch{
   case a>=0:
      fmt.Println("a=0")
      fallthrough
   case a>=1:
      fmt.Println("a=1")
   case a>=2:				//这里不会被运行到
      fmt.Println("a=2")
   default:
      fmt.Println("None")
   }

}

注意case a>=2 不会被运行到
在这里插入图片描述

switch中还可以写成:注意分号别忘了,这里的a也是局部变量

 switch a := 3;{
   case a>=0:
      fmt.Println("a=0")
      fallthrough
   case a>=1:
      fmt.Println("a=1")
   case a>=2:
      fmt.Println("a=2")
   default:
      fmt.Println("None")
   }

跳出循环(和标签一起用)

break

package main

import (
	"fmt"
)

func main() {
LABEL1:           //这个LABEL1是和最外面的循环属于同一级的
  for{
   for i:=0; i<10; i++{
      if i>3 {
         break LABEL1      //这里是跳出整个循环了,如果没有标签LABEL1,只会跳出最里面的for
      }
   }
  }
  fmt.Println("OK")
}

LEBEL1放在最上面

goto

package main

import (
	"fmt"
)

func main() {
           //这个LABEL1是和最外面的循环属于同一级的
  for{
   for i:=0; i<10; i++{
      if i>3 {
         goto LABEL1      //这里是跳出整个循环了,如果没有标签LABEL1,只会跳出最里面的for
      }
   }
  }
  LABEL1:
  fmt.Println("OK")
}

LEBEL1放在最下面

continue

package main

import (
	"fmt"
)

func main() {
LABEL1:          //这个LABEL1是和最外面的循环属于同一级的
  for i:=0; i<10; i++{
   fmt.Println(i)
   for {
         continue LABEL1      //这里是跳出整个循环了,如果没有标签LABEL1,只会跳出最里面的for
         fmt.Println(i)       //因为直接跳过,所以不会执行
   }
   
  }

  fmt.Println("OK")
}

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

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

相关文章

一款强大的API接口文档管理工具(Smart-Doc + Torna)

【本文由龙飞同学供稿】 在团队协作开发项目的时候&#xff0c;接口文档承担着向其他开发人员说明接口相关信息的重要任务&#xff0c;因此&#xff0c;一份清晰而又相近的接口文档至关重要。 但是&#xff0c;写接口文档的痛苦想必各位开发人员都体验过&#xff0c;明明写接…

在职读研有意义么?来社科院与杜兰大学金融管理硕士项目探寻答案

在职场当我们遇到变化&#xff0c;尤其是发展上有瓶颈期的时候&#xff0c;我们会寻找向内突破&#xff0c;通过提升自己的核心竞争力来应对&#xff0c;通过再学习来增加自身的优势。那么在职读研有意义吗&#xff1f;我们来社科院与杜兰大学金融管理硕士项目来探寻。 一、读在…

Postman接口测试之Mock快速入门

一、Mock简介 1.Mock定义 Mock是一种比较特殊的测试技巧&#xff0c;可以在没有依赖项的情况下进行接口或单元测试。通常情况下&#xff0c;Mock与其他方法的区别是&#xff0c;用于模拟代码依赖对象&#xff0c;并允许设置对应的期望值。简单一点来讲&#xff0c;就是Mock创建…

【专业数据】八.2020~2022年北京交通大学【人工智能】专业复试线/分数线差/计划招生数/复试数/录取数/复试比例/录取率

文章目录 1.专业介绍2.2020-2022年国家线/复试线/分数线差2.1.数据总览2.2.数据指标2.2.1.复试分数线2.2.2.分数线差3.2020-2022年计划招生数/复试数/录取数/复试比例/录取率3.1.数据总览3.2.数据指标3.2.1.复试比例3.2.2.录取率4.参考资料欢迎订阅本专栏:《北交计算机复试经验…

python+appium(4)

conftest进阶使用 思路&#xff1a;我们平时导包多&#xff0c;而且经常使用某一段代码&#xff0c;一般我们使用封装的思想进行优化&#xff0c;pytest中conftest模块提供了更高效的方法 你可以添加任何想一次性封装的代码&#xff0c;这里吧代码变成变量&#xff0c;需要使…

Android APP 自动化测试搭建:Appium + Genymotion + [Robot Framework] Open Application

Android APP 自动化测试搭建&#xff1a; Appium Genymotion [Robot Framework] Open Application1. 安装 Android SDK2. 安装 ADB&#xff08;Android Debug Bridge&#xff09;3. 配置 platform-tools 目录(1) 复制 adb 等工具(2) 添加 apksigner.jar4. 配置 Appium Server…

C语言—函数

函数&#xff1a;将代码块封装成一个个不同的函数&#xff0c;在使用时可以多次的调用&#xff0c;不需要关心内部的实现&#xff1b; #include <stdio.h>void MyPrint() {printf("&&&&&&&&&&&\n");printf("…

BaseDet: 走过开发的弯路

BaseDet 开源啦&#xff01;该 repo 提供了一些经典的检测 SOTA 模型以及相关组件&#xff0c;欢迎大家按需取用~~GitHub&#xff1a;https://github.com/megvii-research/basedetMegStudio 使用示例&#xff1a;https://studio.brainpp.com/project/28826?nameBaseDet%E4%BD%…

重磅!TDengine 3.2.0 正式发布

近日&#xff0c;TDengine 3.0.2.0 正式发布了。这是自今年 8 月份 TDengine 3.0 发布以来的第一个重要改进版本。 TDengine 3.0 带来了几大核心特性&#xff0c;包括云原生架构、流式计算&#xff0c;还增强了数据订阅功能&#xff1b;更重要的是&#xff0c;3.0 系列版本开始…

Python是个什么鬼?为什么那么多人都要学它?真的有这么牛吗?

为什么那么多人选择学习python&#xff1f; Python在人工智能、大数据、自动化运维、全栈开发等方面具有独特的优势。随着Python继续占据编程语言主流的趋势&#xff0c;全国各城市的招聘岗位和薪酬将大幅增加。此外&#xff0c;随着人工智能在中国的投资和规划&#xff0c;对…

C++ Primer 第三章 Strings, Vectors, and Arrays

C Primer 第三章 Strings, Vectors, and Arrays3.1. Namespace using Declarations3.2. Library string Type3.2.1. Defining and Initializing stringsDirect and Copy Forms of Initialization3.2.2. Operations on stringsReading and Writing stringsUsing getline to Read…

【图像处理】opencv | 形态学运算:腐蚀,膨胀,开运算,闭运算| 二值图像处理

文章目录前言一、腐蚀和膨胀1.1腐蚀1.2膨胀二、开运算与闭运算三、礼帽与黑帽前言 参考视频&#xff1a;opencv教学 参考教材&#xff1a;《数字图像处理基础》 我的代码基本是跟着B站的视频里面敲了一遍&#xff0c;然后结合教材对指定区域做了一些加强学习 一、腐蚀和膨胀 …

华为云APIArts:API全生命周期一体化解决方案,帮助您端到端呵护您的API

摘要&#xff1a;华为云API Arts是API设计、API开发、API测试、API托管、API运维、API变现一体化协作平台&#xff0c;通过维护API各开发阶段数据高度一致&#xff0c;支持开发者高效实现API全流程一站式体验。 伴随数字化浪潮的到来&#xff0c;应用编程接口(API)已经成为一个…

【MySQL】2.MySQL库操作

文章目录1.0 MySQL基本使用1.1 理解数据库操作2.0 MySQL数据库操作详解2.1创建数据库2.2 字符集和校验规则2.2修改数据库2.3删除数据库2.4查看数据库链接1.0 MySQL基本使用 1.1 理解数据库操作 查看数据库配置文件 指令: vim /etc/my.cnf 登录数据库 指令&#xff1a; mysql…

[第十三届蓝桥杯/java/算法]A——排列字母

&#x1f9d1;‍&#x1f393;个人介绍&#xff1a;大二软件生&#xff0c;现学JAVA、Linux、MySQL、算法 &#x1f4bb;博客主页&#xff1a;渡过晚枫渡过晚枫 &#x1f453;系列专栏&#xff1a;[编程神域 C语言]&#xff0c;[java/初学者]&#xff0c;[蓝桥杯] &#x1f4d6…

机器人开发--设计范式

机器人开发--设计范式1 概念范式特点2 三种范式2.1 机器人基元&#xff1a;感知&#xff08;sense&#xff09;、规划&#xff08;plan&#xff09;、执行&#xff08;act&#xff09;2.2 范式分类分级范式 hierarchical paradigm反应范式 reactive paradigm混合范式 hybrid pa…

程序的动态链接(5):使用动态库

前言 Linux下动态库文件的命名规范是以lib开头&#xff0c;紧接着是动态库名&#xff0c;以.so为后缀名&#xff0c;即lib 动态库名.so。 动态库查找过程 在Linux下&#xff0c;动态库的搜索的优先级顺序为&#xff1a; 编译目标代码时指定的动态库搜索路径&#xff0c;保…

达梦数据库(DM8)常用SQL学习

达梦产品手册 1.检查数据库版本及服务状态 1.1 查看达梦数据库运行状态 SELECT status$ as 状态 FROM v$instance;1.2 查看达梦数据库版本 SELECT banner as 版本信息 FROM v$version;2.创建用户并授权 2.1 创建用户 -- 使用 CREATE USER 语句创建 DM 用户&#xff0c;登…

Python爬虫详解

从今天开始&#xff0c;给大家介绍Python爬虫相关知识&#xff0c;今天主要内容是爬虫的基础理论知识。 一、爬虫简介 爬虫是指通过编写程序&#xff0c;来模拟浏览器访问Web网页&#xff0c;然后通过一定的策略&#xff0c;爬取指定内容。因此&#xff0c;爬虫的编写通常分为…

Nature Communications:人类丘脑的基因结构及其与十种常见大脑疾病的重叠

丘脑是位于大脑中心的重要交流中枢&#xff0c;由不同的核组成&#xff0c;对意识和高级皮层功能至关重要。丘脑结构和功能的改变涉及到常见的大脑疾病的发病机制&#xff0c;但丘脑的遗传结构仍然很大程度上未知。在这里&#xff0c;使用来自30114个个体的大脑扫描和基因型数据…