我試圖讓這段代碼運行,但他跳過了功能登錄package mainimport "fmt"var name stringvar password stringfunc getName() { fmt.Print("What's your name : \n") fmt.Scanf("%s", &name)}func showName() { fmt.Print("Your name is " + name + "\n")}func getPassword() { fmt.Print("What's your password : \n") fmt.Scanf("%s \n", &password)}func singOrLog() { var input string input = "" var loop bool loop = false for loop == false { fmt.Print("Do you want to make an account or login (0 for register and 1 login) : ") fmt.Scanf("%s \n", &input) if input == "0" { register() loop = true } else if input == "1" { login() loop = true } }}func login() { var nameCorrect string nameCorrect = name for !(nameCorrect == name) { fmt.Print("What's your name :\n") fmt.Scanf("%s", &nameCorrect) }}func register() { getName() showName() getPassword() login()}func main() { singOrLog()}
1 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
登錄功能不會被跳過,盡管它永遠不會打印出任何東西。該行:
nameCorrect = name
將 nameCorrect 設置為與 name 相同,后跟:
for !(nameCorrect == name) {
僅當 name 和 nameCorrect 不同時才會執行。您可以通過添加以下行來查看:
fmt.Printf("Name: '%s', nameCorrect: '%s', !(nameCorrect == name): %t\n", name, nameCorrect, !(nameCorrect == name))
這將打印:
Name: '', nameCorrect: '', !(nameCorrect == name): false
我想你不想有線nameCorrect = name
。
- 1 回答
- 0 關注
- 90 瀏覽
添加回答
舉報
0/150
提交
取消