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") } }
このコード:
このコードは、ユーザーが明示的に終了を選択するまでループ本体を実行する望ましい動作を提供します。
以上がGo で Do While ループを複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。