2017-07-28 57 views
-3

我最近在阅读其他人的脚本时遇到过这个问题。一个简短的例子如下: 说,我们需要输入并存储在变种A和B,该方案如下:为什么这个想法在使用while循环。这是微不足道的?

int ok; 
ok = false; 
while(!ok){ 
//ask input for A 
//ask input for B 
ok = true; 
} 

我明白就是了,但为什么是必要的这个计划?我只能“请求A和B的输入”。

+1

让'ok'成为'bool'似乎更直观。 –

+1

接受输入时可能有错误检查。检查循环体中是否有“continue”语句。 –

+0

上面的代码与'do {...} while(false);'相同,''我想你忘记了包含代码的重要部分,例如if语句。 –

回答

2

但为什么这个方案是必要的?

这是没有必要的。

我可以只有“询问A和B的输入”。

你当然可以。

但是,如果用户给你的输入没有用(例如:你问用户的年龄,他们键入“马”),那么你可能会想再次问。允许重新尝试输入通常是一个有用的功能。用于重复一段程序的规范控制结构是一个循环。

但是,您的示例程序无条件地设置了ok,所以在这种情况下,循环确实没有用处。只有在输入确定之前必须传递某种形式的验证时,循环才有意义。

+0

谢谢,这是我正在寻找的答案。 –

+0

在循环体中有输入验证。我认为即使我不使用循环来允许重试功能,它也会在那里。现在我学会了保持这个循环的重要性。 –

1

当您省略的代码中没有检查时,但您在整个地方看到相同的构造时,则是复制&粘贴伪影。

有人有一段代码正在读取输入并验证它,然后将代码复制到其他地方,删除了验证位,并将其余部分保留原样。然后他们复制&将该代码粘贴到所有地方。

以我的经验,这经常发生。

+0

不,我是一个编程新手,我正在审查的代码,我相信是优雅的杰作,否则我不会认真对待它,并问这样的问题....感谢您的建议。 –

相关问题