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# md5 算法实现代码

    C# MD5 算法实现,可以通过使用System.Security.Cryptography空间下的MD5类来完成。下面是完整的攻略: 步骤 1:添加命名空间 首先,在你的 C# 代码文件中,添加如下命名空间: using System.Security.Cryptography; 步骤 2:创建 MD5 对象 接下来,创建一个 MD5 对象,代码如下: M…

    C# 2023年5月31日
    00
  • springMVC+velocity实现仿Datatables局部刷新分页方法

    我们将使用SpringMVC和Velocity作为模板引擎来实现仿Datatables局部刷新分页的功能。以下是详细的步骤: 第一步:配置SpringMVC 为了使用SpringMVC,我们需要添加如下依赖: <dependency> <groupId>org.springframework</groupId> <a…

    C# 2023年5月31日
    00
  • C#实现在窗体上的统计图效果

    首先,在窗体上实现统计图效果的方式有很多种,以下是其中一种具体的实现方法,具体攻略如下: 1. 准备工作 在使用C#实现窗体上统计图效果之前,我们需要确保以下几点: 确保在Visual Studio中安装了Windows Forms应用程序工具包 确保在Windows Form中添加了一个Chart控件 2. 设定数据源 在Chart控件中使用数据源,可以是…

    C# 2023年6月6日
    00
  • 详解C#中的依赖注入和IoC容器

    详解C#中的依赖注入和IoC容器 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于减少代码间的耦合关系。在依赖注入中,对象依赖不会被硬编码进对象中,而是由外部的实体注入依赖关系。 在实际开发中,依赖通常指的是对象和组件需要的其他对象或组件。依赖注入可以让代码的设计更加灵活,易于维护和扩展。 IoC容器 在依赖…

    C# 2023年5月31日
    00
  • C# 7.0 使用下划线忽略使用的变量的原因分析

    C#7.0使用下划线忽略使用的变量的原因分析 在C#7.0中,我们可以使用一个特殊的下划线符号(_)来忽略我们不需要使用的变量,这在代码中并不会引起编译器的警告或错误提示,那么为什么需要使用这个符号,本文将对此进行详细讲解。 忽略变量的原因 在我们的应用程序和代码中,常常会出现我们所不需要的变量、返回值或者方法参数,但在某种情况下,我们又不得不使用这些变量或…

    C# 2023年5月15日
    00
  • asp.net 执行事务代码

    下面是 “ASP.NET 执行事务代码” 的完整攻略: 什么是事务 事务是一组可被视为单个逻辑单元的操作,其中所有操作必须成功才能提交,否则必须回滚。这意味着要么所有的 SQL 语句都被执行且提交,要么执行如果任何一个 SQL 语句出现错误则所有过程不执行,回滚到最初状态。 在 ASP.NET 中,执行事务代码指的是在使用数据库时,通过对 SQL 语句的执行…

    C# 2023年5月31日
    00
  • C#中的反射(System.Reflection)

    下面是针对“C#中的反射(System.Reflection)”的完整攻略。 什么是反射 反射是一种在运行时获取类型信息和操作对象的方法。它允许程序在运行时发现和调用在编译时未知的类型、方法和属性。利用反射,您可以: 获取程序集、模块和类型的元数据 创建类型的实例、操作成员、获取在许多情况下是编译时未知的属性和字段值 反射在许多场合被使用,如: 在运行时加载…

    C# 2023年5月15日
    00
  • 详解C#中HttpClient的用法及相关问题的解决方法

    详解C#中HttpClient的用法及相关问题的解决方法 什么是HttpClient? HttpClient是一种可以使C#开发人员轻松使用HTTP协议进行Web服务交互的类。它是.NET框架的一部分,在System.Net.Http命名空间中,可以用于发送HTTP请求到一个URI并获取响应内容。 HttpClient的用法 创建HttpClient对象 要…

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