繁体   English   中英

C 中的 While 循环,条件未执行

[英]While loop in C, with non-executed condition

我在 C 代码中不断遇到以下模式:

_Bool executed = 0;
while (condition) {
   executed = 1;
   ...
}
if (!executed) {
   ...
}

有没有更好的方法来构建它?

理想情况下:

while (condition) {
   executed = 1;
   ...
} else {
   ...
}

(一个while / else循环,但不符合 Python 的语义。只有当 while 条件立即为假时才应该执行else 。)

它似乎

_Bool executed = 0;
while (condition) {
   executed = 1;
   ...
}
if (!executed) {
   ...
}

如果condition有副作用,可以用

if (condition) {
    do 
    {

    } while(condition);
} else {

}

但是如果你坚持只使用while ,而不是do... while那么你的惩罚就是再次评估condition

if (condition) {
    while(condition)
    {

    }
} else {

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM