ホームページ > バックエンド開発 > Golang > Go で Do While ループを複製するにはどうすればよいですか?

Go で Do While ループを複製するにはどうすればよいですか?

DDD
リリース: 2024-11-20 03:23:01
オリジナル
272 人が閲覧しました

How to Replicate a Do While Loop in Go?

Go での Do While ループの複製

Go では、while ループの概念は Java の do while ループと直接相関しません。ただし、Go で利用可能な他のループ構造を使用して do while ループの機能をエミュレートする方法はあります。

提供されたコード サンプルを詳しく見てみましょう:

var i = 1
for i > 0 {
    fmt.Println("Press 1 to run")
    fmt.Println("Press 2 to exit")
    var input string
    inpt, _ := fmt.Scanln(&input)
    switch inpt {
    case 1:
        fmt.Println("hi")
    case 2:
        os.Exit(2)
    default:
        fmt.Println("def")
    }
}
ログイン後にコピー

コードはロックされていますループ条件 i > であるため、入力に関係なく無限ループになります。 0 は常に true です。 do while 動作をエミュレートするには、ループ本体が実行された後にのみループ条件をチェックする別のループ構造を使用する必要があります。

目的の機能を実現するコードの修正バージョンは次のとおりです。

var input int
for {
    fmt.Println("Press 1 to run")
    fmt.Println("Press 2 to exit")
    n, err := fmt.Scanln(&input)
    if n < 1 || err != nil {
        fmt.Println("Invalid input")
        break
    }

    switch input {
    case 1:
        fmt.Println("hi")
    case 2:
        fmt.Println("Exiting...")
        return
    default:
        fmt.Println("Invalid input")
    }
}
ログイン後にコピー

このコード:

  • ループ変数 i が削除され、int 型の新しい変数入力がユーザー入力のキャプチャに使用されます。
  • ループ条件が定義されていないため、無限ループが発生します。
  • break ステートメントは、ユーザーが無効な入力を入力したとき、またはループの終了を選択したときにループを終了するために使用されます。
  • return ステートメントは、次の目的で使用されます。ユーザーが終了を選択すると関数を終了し、プログラムを効果的に終了します。

このコードは、ユーザーが明示的に終了を選択するまでループ本体を実行する望ましい動作を提供します。

以上がGo で Do While ループを複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート