gpt4 book ai didi

c++ - 在 while 循环中实现重试

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:12 25 4
gpt4 key购买 nike

我正在尝试在 while 循环中实现重试。如果标志变为真,我想重试 5 次。

bool flag = false;
unsigned int count = 5;
while(!flag && count > 0) {
DataOperation opt = DataUser::Insert(data_point);
if(opt == DataOperation::DataEnum) {
UserPointData exist = DataUser::FindUser(data_point->user_id());
if(exist) {
exist->attributeData.put(key, value, len_value, client_id, last_modified_date);
flag = true;
}
} else {
// insert in data_point
data_point->attributeData.put(key, value, len_value, client_id, last_modified_date);
flag = true;
}
count--;
}
  • 所以如果 flag 变为真,那么我将退出循环
  • 第二种情况,如果flag为false 5次,那么我也退出循环。

这看起来正确吗?

最佳答案

就像@Borgleader 指出的那样,flag 变量是不必要的。您可以坚持使用 break 指令并在循环后检查计数是否仍大于零。如果是,则表示您的任务已成功。

unsigned int count = 5;
while(count > 0) {
DataOperation opt = DataUser::Insert(data_point);
if(opt == DataOperation::DataEnum) {
UserPointData exist = DataUser::FindUser(data_point->user_id());
if(exist) {
exist->attributeData.put(key, value, len_value, client_id, last_modified_date);
break; // success.
}
} else {
// insert in data_point
data_point->attributeData.put(key, value, len_value, client_id, last_modified_date);
break; // success.
}
count--;
}

if (count > 0) { /* succeeded within 5 tries. */ }

关于c++ - 在 while 循环中实现重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com