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

时间:2020-05-22 09:30:01

标签: c while-loop

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

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

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

理想情况:

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

(一个while / else循环,但不具有Python的语义。else仅在while条件立即为假时才应执行。)

1 个答案:

答案 0 :(得分:4)

似乎

_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 {

}
相关问题