如何改进没有中断和if的循环

  • 本文关键字:if 循环 中断 何改进 c
  • 更新时间 :
  • 英文 :


我已经开始学习C了,但我有一个疑问。例如,假设我有一个这样的循环:

while(*line && flag) {
do something 1 that changes flag;
if(!flag) break;
do something 2 that changes flag;
if(!flag) break;
do something 3 that changes flag;
if(!flag) break;
do something 4 that changes flag;
if(!flag) break;
...and goes on...
}

当然,它只会在所有的do操作完成后才检查条件,所以它只会检查最后一个标志的值。

我想知道是否有任何方法可以检测到"做某事"之后的标志1"停止这样的循环而不需要那么多的休息和假设。只是为了好奇,想学习如何做好事!

非常感谢!!

----编辑----你们中的一些人要求澄清更多!举个例子,我有一个结构体,我想在接收到它的时候把数据插入进去。假设我有姓名,年龄和地址。我只希望按照我创建的一些规则插入它们是否有效。

因此,如果名称无效,我甚至不想使rest或insert有效,我想继续接收下一个结构体的下一个数据。但是如果名字是有效的,我想检查年龄是否有效,等等。

感谢每个试图帮助你的人!

清理此类代码的一种方法可以说是将所有内容颠倒过来。与其用一个标志来表示事情不正常,不如用一个标志来表示事情正常:

bool still_okay = true;
while(*line && still_okay) {
if(still_okay) {
do something 1 that might change still_okay;
}
if(still_okay) {
do something 2 that might change still_okay;
}
if(still_okay) {
do something 3 that might change still_okay;
}
if(still_okay) {
do something 4 that might change still_okay;
}
...and goes on...
}

相关内容

  • 没有找到相关文章

最新更新