热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go基础流程控制

#流程控制1.条件语句ifcondition{处理一些东西}ifelseifcondition{如果condition为真condition条件满足为真执行这里}else{否则当c

# 流程控制


1. 条件语句

if condition {
// 处理一些东西
}
// if else
if condition { // 如果condition为真
// condition条件满足为真执行这里
} else { // 否则
// 当condition条件不满足为假的时候执行这里
}
if condition { // 先判断condition是否为真

} else if condition1 { // 如果condition 不为真,判断condition1是否为真

} else { // 当condition和condition1都不为真的时候执行这里

}

举个例子

score := 80
if score > 90 {
// 优秀
} else if score <= 90 && score >= 60 {
// 及格
} else {
// 不及格
}
if score1 := 100; score1 > 90 { // 变量初始化语句可以写在if后边,用;隔开
// 优秀
}



  • 条件语句不需要使用圆括号将条件包含起来 ()

  • 无论语句体内有几条语句,花括号 {} 都是必须存在的;

  • 左花括号 { 必须与 if 或者 else 处于同一行;



2. 条件分支

switch var1 {
case val1:
// break go语言不需要这个玩意
// fallthrough 如果加上这个语句的话,那么条件val2里的也会执行
case val2:
...
default:
...
}



  • 和条件语句一样,左花括号 { 必须与 switch 处于同一行;

  • 单个 case 中,可以出现多个结果选项(通过逗号分隔);

  • 与其它语言不同,Go 语言不需要用 break 来明确退出一个 case

  • 只有在 case 中明确添加 fallthrough 关键字,才会继续执行紧跟的下一个 case



3. 循环语句


基本使用

for i := 1; i <= 100; i++ {
// 执行一些什么东西
// continue 跳过本次循环,循环体从这里往下的代码不在执行
// break 退出循环
}

无限循环

for {
// 执行一些东西
// 可以使用break语句退出循环
}

for range

a := []int(1,2,3,4)
for k, v := range a {
// k 索引
// v 值
}
for _,v :range a { // 忽略索引

}

基于条件判断进行循环

i := 0
for i <100 {
// 当i小于100时执行
}



  • 和条件语句、分支语句一样,左花括号 { 必须与 for 处于同一行;

  • 不支持 whiedo-while 结构的循环语句;

  • 可以通过 for-range 结构对可迭代集合进行遍历;

  • 支持基于条件判断进行循环迭代;

  • 允许在循环条件中定义和初始化变量,且支持多重赋值;


本文来自博客园,作者:颖小主,转载请注明原文链接:https://www.cnblogs.com/yingxiaozhu/p/16114895.html



推荐阅读
  • 首先说一下,这是我在CSDN上的第一个文章,其实这个账号早在几年前就申请了,不过当时只是为了下载一个资源,而且也不怎么懂信息技术相关的领域,后来就再也没怎么动过,直到今天我才开始使用这个账号 ... [详细]
  • 学习目的:1.了解android线程的使用2.了解主线程与子线程区别3.解析异步处理机制主线程与子线程:所谓主线程,在Windows窗体应用程序中一般指UI线程,这个是程序启动的时 ... [详细]
  • 使用DataGridViewComboBoxColumn实现数据绑定与操作
    本文详细介绍如何在DataGridView中使用DataGridViewComboBoxColumn来加载、选择和保存数据库中的数据,提供具体的实现步骤和示例代码。 ... [详细]
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • 本文探讨了在Java应用中,由于对象间循环引用导致重写toString方法时出现StackOverflowError的具体情况,并提供了有效的解决方案。 ... [详细]
  • AIY计划由Google发起,旨在通过提供易于使用的工具包和技术支持,激发全球创客的创造力,推动人工智能技术的普及与创新。 ... [详细]
  • Kafka组件详解及工作原理
    本文介绍了Apache Kafka的核心组件及其工作方式,包括生产者(Producer)、消费者(Consumer)、主题(Topic)、代理(Broker)、分区(Partition)、消费者组(Consumer Group)和偏移量(Offset),并探讨了这些组件之间的交互机制。 ... [详细]
  • 重构:优化现有代码设计(第二版)笔记
    本文介绍了重构的基本概念,通过具体示例展示了如何提炼函数以处理过长的代码段,并探讨了多种重构技术,如分阶段重构、封装变量等。 ... [详细]
  • 深入理解FastDFS
    FastDFS是一款高效、简洁的分布式文件系统,广泛应用于互联网应用中,用于处理大量用户上传的文件,如图片、视频等。本文探讨了FastDFS的设计理念及其如何通过独特的架构设计提高性能和可靠性。 ... [详细]
  • 本文针对公司项目中普遍存在的IE浏览器兼容性问题,特别是IE9及以下版本,提出了具体的解决方案,确保用户在这些旧版浏览器中也能顺利实现图片上传预览功能。 ... [详细]
  • 使用Python轻松合并大量复杂Excel文件
    当面对大量的Excel文件时,如何高效地将它们合并成一个文件成为了一项挑战。本文将指导初学者如何利用Python的几个库,在几十行代码内完成这一任务。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • 解析SAP MM中采购申请单据项的Closed标志
    本文将详细介绍SAP MM模块中采购申请单据项内的Closed标志的具体含义及其操作方法,帮助读者更好地理解和运用这一功能。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有