August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
下面我们尝试既处理超出范围的输入,又处理类型错误的输入:
这段代码又乱又冗长。当有人需要编写让用户输入整数的程序时,我们绝不会建议他们这样写。但另一方面,我们确实要在代码中处理潜在的错误,因为用户确实制造了错误,我们该怎么办呢?这段程序如此之乱,是因为它把处理好几件不同事情的代码都混合在一起了:
·读取数值。
·提示用户输入。
·输出错误信息。
·跳过“问题输入字符”。
·测试输入是否在所需范围内。
一种常用的令代码更为清晰的方法是将逻辑上做不同事情的代码划分为独立的函数。例如,对于发现“问题字符”(如意料之外的字符)后进行错误恢复的代码,就可以将其分离出来:
有了上面的“工具函数”skip_to_int()后,代码就可以改写为:
这段代码就好多了,但它还是太长、太乱,很难在程序中多次使用。我们需要进行大量的测试,才能保证其正确性。
我们到底需要什么样的操作呢?一个看起来挺合理的答案是:“我们需要一个读取任意整数的函数,以及一个读取指定范围内整数的函数。” ...