ホームページ  >  記事  >  バックエンド開発  >  Go 言語の基本的な演算子とフロー制御を理解するのに役立つ記事

Go 言語の基本的な演算子とフロー制御を理解するのに役立つ記事

Go语言进阶学习
Go语言进阶学习転載
2023-07-20 14:38:04538ブラウズ
今回も Go の基本的な演算子とプロセス制御を学習していきます。

演算子

演算子という名前は神秘的に聞こえますが、実際には # のようによく目にします。 ##=, ,/ある種の。

#演算子は主に

  • 算術演算子

  • 関係演算子
  • #論理演算子
  • #ビット演算子

  • 代入演算子

  • 以下は簡単です。 以下について学習します。

算術演算子

##名前が示すように、算術演算子は主に加算、減算、乗算、除算などの算術で使用されます

以下のことを簡単に理解してください。

#-#残りを探します自add##--# ##############################


関係演算子

#オペレータ ##説明# #################### #################追加######## ####
減算 ######*##################かける################## ###### /############分割######################%########### ###
自動デクリメント
##! = #2 つの値が等しくないかどうかを確認し、等しくない場合は True を返し、等しくない場合は False を返します>左側の値が上の値より大きいかどうかを確認します右、そうであれば True を返し、それ以外の場合は False を返しますn ビット右シフトそれは2のn乗で割られます。 「a>>b」は、a のすべての 2 進ビットを右に b ビットだけシフトします。


代入演算子

代入演算子は開発でもよく使用されます。

##演算子 説明
##== 2 つの値が等しいかどうかを確認し、等しい場合は True を返し、そうでない場合は False を返します
#>= 左側の値が次の値より大きいかどうかを確認します。右側の値と等しい場合は True を返し、それ以外の場合は False を返します
343e2ed989c8271c7c6c3f54294de879>
#=単純な代入演算子、式を変換します。 の値を代入します。式を左辺値に =代入加算後の値##-=##*=#%=534b02e35f49433957da6e3ba215f0b4>=&==ビットごとの XOR 後の代入


#プロセス制御

Go では、次の種類のプロセス制御があります。

  • #if

    • ##if
    • ケースを切り替える
  • #標準の
    • ##範囲

    • ##goto(使用には注意してください)

  • if


構文

//方式一,一个if
if 条件{
    //执行语句
}
//方式二,if条件不成功执行else
if 条件{
    //if成功语句
}else{
    //if不成功语句
}
//方式三,带有else if得
if 条件1{
    //if成功语句
}else if 条件2{
    //if不成功,继续else if条件
}else{
    //上面都不成功,执行else
}
# ########例#########
package main

import "fmt"

func main() {
    var gender = "男"

    if gender == "男" {
        fmt.Println("男")
    } else if gender == "女" {
        fmt.Println("女")
    } else {
        fmt.Println("啥都不是???")
  }
}


switch case

switch caseif本质是一个东西,但是在某些场景,switch是比if更加简洁的。

代码

package main

import "fmt"

func main() {
    var week = 3
    switch week {
    case 1:
        fmt.Println("周一")
    case 2:
        fmt.Println("周二")
    case 3:
        fmt.Println("周三")
    case 4:
        fmt.Println("周四")
    case 5:
        fmt.Println("周五")
    case 6:
        fmt.Println("周六")
    case 7:
        fmt.Println("周日")
    default://如果上面都没执行,会执行default
        fmt.Println("星期八????")
  }
}

注:在Go中,switch是没有case穿透的。


Go的switch可以case多个值。

package main

import "fmt"

func main() {
    var week = 3
    switch week {
    case 1, 2, 3, 4, 5:
        fmt.Println("上班")
    case 6:
        fmt.Println("周六睡懒觉")
    case 7:
        fmt.Println("周日去旅游")
    default:
        fmt.Println("飞天了???")
  }
}


for

标准for循环

语法

for 初始条件;判断条件;结束条件{
    语句
}

代码

package main

import "fmt"

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

无限循环

谨慎执行!!!

package main

import "fmt"

func main() {
    for{
        fmt.Println("666")
  }
}

for range

for ragne可以很方便循环数组,切片,字符串,map,channel等。

遍历数组示例

package main

import "fmt"

func main() {
    var student_list = [...]string{"张三", "李四", "王五"}
    for index, v := range student_list {
        //index为下标,v是每一个的值
        fmt.Println(index, v)
  }
}

注:

如果数组,切片,字符串
  index是下标,v是值
如果是map
  index是键,v是对(值)
如果是通道
  只有一个值,就是通道内的值

补充:

在Go中,只有for循环,没有while。

for循环就两种方式。


goto

goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用gote过多,会造成逻辑混乱,跳来跳去。

所以,在开发中,要慎用,不到万不得已,不要使用。


示例

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    for j := 0; j < 10; j++ {
      if j == 2 {
        // 直接跳转到下面的 breakTag 标签
        goto breakTag
      }
      fmt.Printf("%v-%v\n", i, j)
    }
  }
  //要跳转的标签
breakTag:
  fmt.Println("结束for循环")
  }


#オペレータ ##説明
減算後、代入値
## 乗算して値を代入します
#/= ##除算して値を代入します
##剰余を求めて値を割り当てます
右シフト後に値を割り当てます
##ビット単位の AND 後の代入 |
##ビットごとの OR 後の代入
##^=

以上がGo 言語の基本的な演算子とフロー制御を理解するのに役立つ記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。