Go语言流程控制语句

Go语言流程控制语句

在Go语言中,流程控制是任何编程语言中都不可避免的一部分。Go语言提供了几种流程控制语句,包括if语句、for循环、switch语句、break语句、continue语句和goto语句。本文将详细介绍这些语句及其使用场景。

if语句

if语句是Go语言中最基本也是最常用的流程控制语句之一,它用于根据一个条件判断来决定是否执行某段代码。if语句支持以下形式:

if 条件1 {
    //条件1成立时执行的代码
}else if 条件2 {
    //条件2成立时执行的代码
}else{
    //所有条件都不成立时执行的代码
}

示例1:判断一个数是否是偶数。

package main

import "fmt"

func main() {
    var num int
    fmt.Print("请输入一个整数: ")
    fmt.Scan(&num)
    if num%2 == 0 {
        fmt.Printf("%d是一个偶数", num)
    } else {
        fmt.Printf("%d是一个奇数", num)
    }
}

示例2:根据成绩等级计算学生的评价。

package main

import "fmt"

func main() {
    var grade int
    fmt.Print("请输入学生的成绩: ")
    fmt.Scan(&grade)
    if grade >= 90 {
        fmt.Println("优秀")
    } else if grade >= 80 {
        fmt.Println("良好")
    } else if grade >= 70 {
        fmt.Println("中等")
    } else if grade >= 60 {
        fmt.Println("及格")
    } else {
        fmt.Println("不及格")
    }
}

for循环

for循环是用于重复执行一段代码的流程控制语句。它支持三种形式:for循环、while循环和do...while循环。这三种形式可以互相转换。

for循环

for循环是Go语言中最常用的循环结构,它支持以下形式:

for 初始语句;条件表达式;结束语句{
    //循环体
}

说人话就是:初始语句用于初始化循环参数,条件表达式用于判断是否继续循环,结束语句用于更新循环参数。

示例1:计算1到10的和。

package main

import "fmt"

func main() {
    sum := 0
    for i := 1; i <= 10; i++ {
        sum += i
    }
    fmt.Println("1+2+...+10 =", sum)
}

示例2:打印99乘法表。

package main

import "fmt"

func main() {
    for i := 1; i <= 9; i++ {
        for j := 1; j <= i; j++ {
            fmt.Printf("%d*%d=%d\t", j, i, i*j)
        }
        fmt.Println()
    }
}

while循环

while循环在Go语言中不是关键字,但可以用for语句来实现。while循环的形式如下:

for 条件表达式{
    //循环体
}

示例:

package main

import "fmt"

func main() {
    i := 1
    for i <= 10 {
        fmt.Println(i)
        i++
    }
}

do...while循环

do...while循环在Go语言中也不是关键字,但可以使用for语句来实现。do...while循环的形式如下:

for {
    //循环体
    if !条件表达式 {
        break
    }
}

示例:从标准输入中输入整数,直到输入0为止。

package main

import "fmt"

func main() {
    for {
        var num int
        fmt.Print("请输入一个整数(0退出): ")
        fmt.Scan(&num)
        if num == 0 {
            break
        } else {
            fmt.Println(num)
        }
    }
}

switch语句

switch语句是用于根据一个值选择多条代码中的一条执行的流程控制语句。它支持以下形式:

switch 表达式 {
case 值1:
    //条件1成立时执行的代码
case 值2:
    //条件2成立时执行的代码
default:
    //所有条件都不成立时执行的代码
}

示例1:判断一个学生成绩的等级。

package main

import "fmt"

func main() {
    var grade int
    fmt.Print("请输入学生的成绩: ")
    fmt.Scan(&grade)
    switch grade / 10 {
    case 10, 9:
        fmt.Println("优秀")
    case 8, 7:
        fmt.Println("良好")
    case 6:
        fmt.Println("及格")
    default:
        fmt.Println("不及格")
    }
}

示例2:根据运算符计算两个数的结果。

package main

import "fmt"

func main() {
    var num1, num2 float64
    var operator string
    fmt.Print("请输入第一个数: ")
    fmt.Scan(&num1)
    fmt.Print("请输入第二个数: ")
    fmt.Scan(&num2)
    fmt.Print("请输入运算符(+,-,*,/): ")
    fmt.Scan(&operator)
    switch operator {
    case "+":
        fmt.Println(num1+num2)
    case "-":
        fmt.Println(num1-num2)
    case "*":
        fmt.Println(num1*num2)
    case "/":
        fmt.Println(num1/num2)
    default:
        fmt.Println("输入的运算符不合法")
    }
}

break语句

break语句用于跳出循环。在for循环、switch语句和select语句中都可以使用break语句。

示例:计算1到100之间所有偶数的和。

package main

import "fmt"

func main() {
    sum := 0
    for i := 1; i <= 100; i++ {
        if i%2 == 1 {
            continue
        }
        sum += i
    }
    fmt.Println("1到100之间所有偶数的和为:", sum)
}

continue语句

continue语句用于跳过本次循环的剩余部分,继续执行下一次循环。在for循环中使用此语句可以跳过某次处理,但是继续执行循环。

示例:输出所有奇数。

package main

import "fmt"

func main() {
    for i := 1; i <= 10; i++ {
        if i%2 == 0 {
            continue
        }
        fmt.Println(i)
    }
}

goto语句

goto语句在Go语言中被认为是一种不良方式,因为它会导致程序的逻辑跳转变得难以理解,不利于代码的阅读和维护。因此,除非在特殊情况下,一般情况下不应该使用它。它的形式如下:

LABEL:
    //代码
    goto LABEL

示例:使用goto语句打印1到100之间的奇数。

package main

import "fmt"

func main() {
    i := 1
LOOP:
    if i > 100 {
        return
    }
    if i%2 == 0 {
        goto SKIP
    }
    fmt.Println(i)
SKIP:
    i++
    goto LOOP
}

总结

本文通过对Go语言流程控制语句的详细讲解,使读者对它们的特点、用法和常见场景有了更深入的了解。在实际项目开发中,流程控制是不可或缺的一部分,合理运用它们可以有效提高代码的效率和质量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言流程控制语句 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#如何给PPT中图表添加趋势线详解

    C#给PPT中图表添加趋势线可以使用Microsoft Office Primary Interop Assemblies(PIA)库,在C#中调用Office对象模型实现。下面是完整的攻略: 准备工作 安装Microsoft Office软件,如PowerPoint,确保安装了对应版本的Microsoft Office Primary Interop As…

    C# 2023年6月3日
    00
  • Sqlserver 2005使用XML一次更新多条记录的方法

    SQL Server 2005可以利用XML实现一次更新多条记录的操作。以下是步骤的详细说明和示例。 步骤一:创建存储过程 首先,需要创建一个存储过程来实现在SQL Server 2005中使用XML一次更新多条记录的操作。 CREATE PROCEDURE UpdateMultipleRecords @XMLData XML AS BEGIN –1.创建…

    C# 2023年6月8日
    00
  • C# 预处理器指令的用法

    C# 预处理器指令是编译器在编译代码之前对代码进行处理的一种方式。预处理器指令可以在代码中使用 # 关键字进行定义,并在编译时根据指令的定义执行相应的操作。 #define 指令 define 指令用于定义一个常量或一个符号。常量的定义方式为: #define PI 3.1415926 符号的定义方式为: #define DEBUG 如果定义了常量,那么在代…

    C# 2023年6月6日
    00
  • C# 泛型的简单理解(安全、集合、方法、约束、继承)分享

    下面我来详细讲解一下 C# 泛型的相关知识。 什么是泛型 泛型是 C# 语言的一个重要特性,它能使你编写出更加灵活和可重用的代码。泛型和类、接口、委托和方法一样,是 C# 中的一种类型。它允许你定义一种类型,这种类型可以在使用时指定其具体的类型参数。这相当于抽象出了一种通用的类型,只有在具体使用时才会确定其具体类型。 泛型的优势 安全性:泛型能提供编译时类型…

    C# 2023年5月15日
    00
  • asp.net各种cookie代码和解析实例

    ASP.NET中的Cookie ASP.NET中cookie是一种存储在客户端计算机上的小文件,由服务器在响应HTTP请求时发送到客户端,客户端的浏览器会将cookie存储在客户端计算机上,并在以后的HTTP请求中将其发送回服务器。ASP.NET支持三种类型的cookie:会话cookie、固定Cookie和卷曲cookie。 会话Cookie 会话cook…

    C# 2023年5月31日
    00
  • C# 预处理器指令的用法

    下面是C# 预处理器指令的用法的完整攻略: 什么是C# 预处理器指令? 预处理器指令是指在编译之前进行的一些处理操作,与C# 代码的语法和语义有关系。预处理器指令以 # 开头,并且在源代码中的任何地方都可以出现。C# 预处理器指令主要用来控制编译器对代码的处理方式,包括条件编译、去除注释等等操作。 C# 预处理器指令的用法 #define 和 #undef …

    C# 2023年5月14日
    00
  • 利用.net代码实现发送邮件

    利用.NET代码实现发送邮件的完整攻略如下: 1. 配置SMTP 使用.NET发送邮件需要配置SMTP(Simple Mail Transfer Protocol)服务器。SMTP服务器是邮件服务器中负责发邮件的,可以是自己部署在本机或者使用第三方的SMTP服务商提供的服务。在本机搭建SMTP服务器需要专业的知识,因此我们在这里选择使用第三方提供的SMTP服…

    C# 2023年5月31日
    00
  • C# Clear():从集合中移除所有元素

    C#中的Clear()方法是一个实例方法,通常用于清空某些数据结构中的元素,例如字符串、数组、集合等。以下是C# Clear()的完整攻略,包括用法、示例和注意事项。 用法 Clear()方法是通过.运算符调用的实例方法,该方法不接受参数,返回值为void类型。可以使用Clear()方法来清空String、StringBuilder、List、Diction…

    C# 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部