Go+(Switch、简单for循环)

简介: 如果我们需要匹配某些情况的时候,比如说给考试分等级,90分以上为A,70分以上为B,60分以下为C,这种情况,我们发现,如果使用if条件语句的话,实现起来是十分复杂的,所以就有了选择语句switch。Go+的switch相较于Java和、C的switch语句更加灵活方便。

概述


如果我们需要匹配某些情况的时候,比如说给考试分等级,90分以上为A,70分以上为B,60分以下为C,这种情况,我们发现,如果使用if条件语句的话,实现起来是十分复杂的,所以就有了选择语句switch。


Go+的switch相较于Java和、C的switch语句更加灵活方便。


语法


基本语法


Go+的switch无需break,避免了条件击穿的问题,Go+会自动帮我们匹配到合适的switch语句,就不再执行下面一行的代码了,具体的语法格式如下:


switch 需要判断的变量{
      case 情况A :
         // 执行的代码  
      case 情况B :
         // 执行的代码       
      case 情况C :
         // 执行的代码      
      case 情况D :
         // 执行的代码  
      default:
         // 都不匹配的情况下执行
   }
复制代码


写一个小Demo,如果分数90以上分为A,70分以上为B,60分以上为C,60分以下为D。


var marks int = 90   
switch {
  case marks >= 90 :
      println("A")    
  case marks<90 && marks>=70 :
      println("B")  
    case marks<70 && marks>=60 :
      println("C") 
      default:
         println("D" );
}
复制代码


default case


如果我们写的几种情况都匹配不上的话,Go+会默认帮我们匹配default的这种情况,需要注意的是Go+的default不是只能放在最后,而是可以放在任何的位置。


var marks int = 30   
switch {
  case marks >= 90 :
        println("A")    
  case marks<90 && marks>=70 :
        println("B")
  default:
          println("D" );  
  case marks<70 && marks>=60 :
        println("C") 
}
复制代码


多case的情况


如果我们需要匹配多种情况,比如我们的元音辅音,是没有任何数学上的规律,仅仅只是需要匹配多个值,我们就可以在case上不断加条件,变成多case的情况。


word := "i"
    switch word {
    case "a", "e", "i", "o", "u": 
        println("元音")
    default:
        println("辅音")
    }
复制代码


fallthrough


我们前面说过,如果Go+的switch匹配到了某种情况是不会再去执行下面的语句了,如果我们想要继续执行下面代码的效果就可以使用fallthrough,需要注意的是fallthrough会强制执行后面的case里面的代码,不会去判断case里面的情况是否是真。


num := 30  
switch {
    case num < 50:
        println("小于40")
        fallthrough
    case num < 70:
        println("小于70")
        fallthrough
    case num < 90:
        println("小于90")
}
复制代码


概述


   如果我们想循环执行某个操作,这个时候就需要循环控制结构,也就是for循环。for循环的意思是根据循环的判断条件,当条件为真的时候,执行某种操作,直到循环为假的时候才跳出这个循环。


语法


   for循环有三种循环,分别对应不同的写法。


第一种循环


   第一种循环时我们最常见的循环,他是支持初始化语句的。语法格式如下:


for 初始化代码; 关系表达式; 赋值表达式 { 
}
复制代码


   他包含了三段代码:


  1. 初始化代码:这里操作一般为给表达式赋初始值。
  2. 关系表达式:这里写的是循环控制的条件。
  3. 赋值表达式:这里写一段赋值表达式,一般是给变量自增或者自减的。

   比如我们输出0-10可以这样写:


for i := 0; i <= 10; i++ {
       println(i)
}
复制代码


第二种循环


   第二种循环是我们通过关系表达式来控制循环,他的语法格式如下:


for 循环条件 { 
  // 执行的代码块
}
复制代码
i := 0
for i < 3 {
  println i
  i++
}
复制代码

 

他所得到的结果就是输出大于0小于3的数,结果是0、1、2.


第三种循环


   第三种循环是无限循环,需要搭配break来跳出循环,不然会一直无线循环,直到报错。他的语法格式如下:


for {
    //需要执行的代码
}
复制代码

 

  他等价于这样写:


for ; ; {
    //需要执行的代码
}
复制代码

   

如果我们不控制循环的跳出的话,程序会报错的,所以我们一般的写法是:


k := 1
for { 
  if k <= 3 {
    println k
  } else {
    break 
  }
  k++
}



相关文章
|
6月前
|
Go
Go 1.22 for 循环的两处重要更新
本文介绍了 Go 1.22 版本对 for 循环所做的两处重要更新:循环的每次迭代都会创建新变量 和 循环支持对整数范围进行迭代。 - 循环的每次迭代都会创建新变量,有效避免了以往版本中常见的闭包陷阱,提高了代码的安全性和可预测性。 - 循环支持对整数范围进行迭代,极大地增强了 for 循环的灵活性,使得编写计数循环更加直接和简洁。
104 1
Go 1.22 for 循环的两处重要更新
|
4天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
13 2
Go语言的条件控制语句及循环语句的学习笔记
本文是Go语言的条件控制语句和循环语句的学习笔记,涵盖了if语句、if-else语句、if嵌套语句、switch语句、select语句以及for循环和相关循环控制语句的使用方法。
Go语言的条件控制语句及循环语句的学习笔记
|
1月前
|
Go 索引
go基础-6.for循环
go基础-6.for循环
|
3月前
|
存储 编译器 Go
|
3月前
|
Go
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围
|
6月前
|
Go
Go 语言循环语句
Go 语言循环语句
33 0
|
5月前
|
Go
go循环语句
go循环语句
|
6月前
|
Go 开发者
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
【4月更文挑战第21天】本文介绍了Go语言中的流程控制语句,包括`if`、`switch`和`for`循环。`if`语句支持简洁的语法和初始化语句,但需注意比较运算符的使用。`switch`语句提供多分支匹配,可省略`break`,同时支持不带表达式的形式。`for`循环有多种形式,如基本循环和`for-range`遍历,遍历时修改原集合可能导致未定义行为。理解并避免易错点能提高代码质量和稳定性。通过实践代码示例,可以更好地掌握Go语言的流程控制。
52 3
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
|
6月前
|
程序员 Go API
【Go语言快速上手(二)】 分支与循环&函数讲解
【Go语言快速上手(二)】 分支与循环&函数讲解