一个拖拉且错误的猜数字程序

628 阅读2分钟

看看这个程序好像没啥错误,来运行一下吧。

每次输入除'y'的字符,程序会打印两条消息。 原因:是这个麻烦的换行符,缓冲输入要求用户按下Enter键发送输入。程序读取了除'y'字符作为用户否定了数字1,然后还读取了一个换行符作为用户否定了数字2.

多多理解)现在先来改进一下下:

再新添一个while()循环,嵌套在与原来的while()循环里面,使得while()循环丢弃输入行后面的内容,包括换行符。这样做的优点是:能把no和no way 简单相应成n.这样解决了换行符的问题。

当然,这还不算结束。如果在程序中输入的内容是 forget it,程序还是会把他理解为n。在编写交互式程序时,应该事先预料到用户可能会输入错误,然后设计程序处理用户的错误输入。在用户输入错误时通知用户再次输入。

若用户输入错误,则给出提示,要求重新输入,且数字不会变。 程序如下:

在上一个程序的基础上添加了if()...else 语句,添加了一个char型变量response,用于接收输入的第一个字符。

当然,作为一个猜数字程序,这个程序还有许多需要加强的地方。

比如:

  • 1)用户的数字应该先确定下来,除程序以外,其他人都可以知道这个数字是什么,当前的的程序让用户的数字具有可改变性

  • 2)程序猜数字的过程过于拖沓。 用户的数字可能很大,程序是从1开始慢慢加起来的,整个过程耗时长,不能满足用户对该程序的好奇心。