ホームページ  >  記事  >  バックエンド開発  >  Golang コードの制御ステートメントの技術

Golang コードの制御ステートメントの技術

WBOY
WBOYオリジナル
2024-04-07 21:30:011002ブラウズ

制御ステートメントは、シーケンシャル ステートメント (if/switch)、選択ステートメント (for/while/range)、ループ ステートメント (break/Continue) など、Go のプログラム フローを制御するために使用されます。さらに、実際の戦闘シナリオでは、ユーザーが入力した買い物リストに基づいて、乳製品、主食、果物、肉などのカテゴリごとにアイテムをグループ化する制御ステートメントを使用できます。

Golang 代码中控制语句的艺术

Golang コードにおける制御ステートメントの技術

制御ステートメントはプログラミングにおいて重要であり、プログラムのフローを制御するために使用されます。実行。 Go 言語には、シーケンス ステートメント、選択ステートメント、ループ ステートメントなどの豊富な制御ステートメントのセットが用意されています。

シーケンシャル ステートメント

  • if ステートメント: は、条件が true かどうかに応じてコード ブロックを実行するために使用されます。例:
if x > 0 {
  // x 为正数
} else {
  // x 不是正数
}
  • switch ステートメント: は、値の一致に基づいてコード ブロックを実行するために使用されます。例:
switch x {
case 0:
  // x 为 0
case 1:
  // x 为 1
default:
  // x 不是 0 或 1
}

Select ステートメント

  • for ループ: 条件が false になるまでコード ブロックを繰り返し実行します。例:
for i := 0; i < 10; i++ {
  // 执行代码块
}
  • while ループ: 条件が true である限り、コードのブロックを繰り返し実行します。例:
while x > 0 {
  // 执行代码块
  x--
}
  • range ループ: コレクション内の要素をループし、各要素のコード ブロックを実行します。例:
for k, v := range m {
  // k 为键,v 为值
}

ループ ステートメント

  • break ステートメント: ループを直ちに終了します。例:
for i := 1; i <= 10; i++ {
  if i == 5 {
    break
  }
}
  • Continue ステートメント: 現在のループ反復をスキップし、次の反復に進みます。例:
for i := 1; i <= 10; i++ {
  if i % 2 == 1 {
    continue
  }
  // 只执行偶数
}

実用的なケース

次のシナリオを考えてみましょう: 買い物リストを含むユーザー入力を処理する。リスト内の項目をカテゴリにグループ化したいと考えています。

コード:

package main

import (
  "fmt"
  "strconv"
  "strings"
)

func main() {
  var input string
  fmt.Print("输入购物清单(以逗号分隔):")
  fmt.Scanln(&input)

  categories := make(map[string][]string)

  for _, item := range strings.Split(input, ",") {
    item = strings.TrimSpace(item)
    category := getCategory(item)
    categories[category] = append(categories[category], item)
  }

  for category, items := range categories {
    fmt.Println(category)
    for _, item := range items {
      fmt.Println("  ", item)
    }
  }
}

func getCategory(item string) string {
  switch {
  case strings.Contains(item, "牛奶") || strings.Contains(item, "鸡蛋"):
    return "乳制品"
  case strings.Contains(item, "面包") || strings.Contains(item, "大米"):
    return "主食"
  case strings.Contains(item, "苹果") || strings.Contains(item, "香蕉"):
    return "水果"
  case strings.Contains(item, "鱼") || strings.Contains(item, "肉"):
    return "肉类"
  default:
    return "其他"
  }
}

この例では、一連の if ステートメントを使用して項目をさまざまなカテゴリに分類し、for ループを使用して入力 List と結果を印刷します。

以上がGolang コードの制御ステートメントの技術の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。