While循环中的break语句出现问题

Posted

技术标签:

【中文标题】While循环中的break语句出现问题【英文标题】:Trouble with break statement in While loop 【发布时间】:2013-11-17 06:00:57 【问题描述】:

我正在尝试编写一个从用户那里收集信息,然后输出到文本文件的程序。该程序正确收集输入,正如我插入的打印语句告诉我的那样,但是当输入指定值时,break 语句不会中断循环,并且输出文件永远不会更新。你能给出的任何建议都会很有帮助。谢谢!

# 1. Define Greeting:
def greeting():
    print("Welcome, user! Please enter the address data, or type 'quit'.")

# 2. Input
def inputData():
    name = input("Enter the name: ")
    address = input("Enter the address: ")
    city = input("Enter the city: ")
    state = input("Enter the state: ")
    zipCode = input("Enter the zip: ")
    phone = input("Enter the phone number: ")
    addressData = str(name + ", " + address + ", " +
                       city + ", " + state + ", "+ zipCode +
                       ", " + phone)
    print(addressData)
    return(name)

# 3. Write data to text file
def dataWrite():
    f.write(addressData + "\n")

# 4. Display the goodbye message:
def goodbye():
    print("Have a nice day!")

# 5. Define Main function:
def main():    
    greeting()
    while name != "quit":
         inputData()
         if name == "quit":
             break
         else:
             dataWrite()
    f.close()        
    goodbye()
main()

【问题讨论】:

什么是f?你没有在任何地方定义它。在您的 main 函数中,name 未定义 - 您需要在 while 循环 之前 调用 inputData() 方法,然后保存其返回值。所以你需要name = inputData(),然后你可以做while name != 'quit':,然后不要忘记在你的内部,同时你还需要name = inputData() 【参考方案1】:
def main():    
    greeting()
    while name != "quit":
         name = inputData()
         if name == "quit":
             break
         else:
             dataWrite()
    f.close()        
    goodbye()

你没有得到inputData()的返回值。

【讨论】:

以上是关于While循环中的break语句出现问题的主要内容,如果未能解决你的问题,请参考以下文章

在while循环中,break,continue,return有啥区别

while循环中的breakcontinue和else

while 循环中的break continue pass 的用法

pythonfor循环break可以出现多次

C语言基础:循环结构(循环类型(while,do...while,for,嵌套循环),循环控制语句(break,continue,goto),无线循环(死循环))

while语句(内有实操)