首頁  >  文章  >  後端開發  >  如何在 Go 中複製 Do While 迴圈?

如何在 Go 中複製 Do While 迴圈?

DDD
DDD原創
2024-11-20 03:23:01211瀏覽

How to Replicate a Do While Loop in Go?

Do While 循環在 Go 中的複製

在 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 始終為真。要模擬 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類型的新變數input 來擷取使用者輸入。
  • 循環條件未定義,會導致無限循環。
  • break 語句用於在使用者輸入無效輸入或選擇退出時退出迴圈。
  • return 語句用於當使用者選擇退出時退出函數,從而有效地終止程式。

此程式碼提供了執行循環體的所需行為,直到使用者明確選擇退出。

以上是如何在 Go 中複製 Do While 迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn