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#中DateTime日期类型格式化显示方法汇总

    C#中DateTime日期类型格式化显示方法汇总 在C#中,DateTime是表示日期和时间的结构体。我们经常需要输出符合我们要求的日期和时间的格式来方便输出和理解。下面是一些DateTime的格式化输出方法: 标准格式字符串 格式字符串 描述 d 短日期格式,例如 2022/3/17 D 长日期格式,例如 2022年3月17日 t 短时间格式,例如 下午 …

    C# 2023年5月31日
    00
  • AspNetPager分页控件源代码(Version 4.2)第2/2页

    分页控件是网站开发中非常常用的一个控件,它可以将数据分页显示,并提供页码、跳转等功能,能够方便用户浏览大量内容。下面我将详细讲解AspNetPager分页控件的使用方法和源代码。 安装AspNetPager分页控件 在使用AspNetPager分页控件之前,我们需要先将其安装到项目中,具体方法如下: 1. 下载AspNetPager分页控件 我们可以从NuG…

    C# 2023年5月31日
    00
  • C#命名空间System.ComponentModel属性方法汇总

    C#命名空间System.ComponentModel属性方法汇总 System.ComponentModel 命名空间提供了一些实用的属性、方法和接口,可以用来处理类、组件和控件的设计时特性,以及提供类和组件在 Visual Studio 设计器中的支持。下面是一些常用的属性和方法: 属性 AmbientValueAttribute AmbientValu…

    C# 2023年5月15日
    00
  • 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解 AOP(Aspect-Oriented Programming)是面向切面编程的缩写,它是一种编程思想,通过将程序中的通用功能(如日志记录、异常处理、性能统计等)抽象出来,无需修改原始代码,就可以为各个类或方法注入通用功能。AOP技术的主要优点在于可以提高代码的重用性、可维护性和可扩展性。 C#是一种面向对象的编程语言,…

    C# 2023年5月15日
    00
  • Entity Framework使用Code First模式管理事务

    使用Entity Framework的Code First模式管理事务可以帮助开发人员更加便捷地创建数据库和管理事务,下面是使用Code First模式管理事务的详细攻略。 1. 定义实体类 首先,需要定义要映射到数据库的实体类。可以使用标准的C#类来定义实体类,但需要使用特定的约定来指定表名、主键等属性,如下面的示例所示: public class Cus…

    C# 2023年6月3日
    00
  • C#如何获取计算机信息

    C#是一种强类型的、面向对象的编程语言,也是微软公司开发的一种通用型编程语言。C#可以用于开发桌面应用程序、Web应用程序、移动应用程序等,在获取计算机信息这一方面,C#提供了一系列的API,我将在以下几个方面详细介绍: 获取计算机基本信息 using System.Management; ManagementObjectSearcher searcher …

    C# 2023年6月1日
    00
  • C#实现HTTP协议迷你服务器(两种方法)

    下面是详细讲解“C#实现HTTP协议迷你服务器(两种方法)”的完整攻略。 一、前言 随着互联网的迅猛发展,Web开发日趋成熟,HTTP协议成为Web开发中不可或缺的一部分。而服务器是Web开发的基础,因此实现一个迷你服务器对学习Web开发有着很大的帮助。本文将通过两种方法实现C#迷你HTTP服务器的搭建。 二、实现方法 方法一:使用TcpListener实现…

    C# 2023年6月7日
    00
  • C#使用System.Environment获取电脑的相关属性

    关于C#使用System.Environment获取电脑的相关属性的攻略,以下是我总结的步骤: 步骤一:引用命名空间 在使用System.Environment类获取电脑的相关属性之前,需要先引用命名空间using System;。 步骤二:使用System.Environment类中的方法获取电脑的相关属性 System.Environment类中提供的方…

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