C++break语句替换
C++ break statement alternative
很抱歉问了这个"愚蠢"的问题,我对C++不熟悉。我有这个:
for (i=0; i<n; i++) {
if (ar[i] == 1) {
printf ("Wrong.n");
break;
}
else {
printf ("Correct.n");
break;
}
}
如何在不中断statement
的情况下完成此操作?有人建议我使用while
循环。这样行吗?
下面的代码也有同样的效果(尽管我怀疑这是你想要的):
i= 0;
if (n > 0)
{
if (ar[0] == 1) {
printf ("Wrong.n");
}
else {
printf ("Correct.n");
}
}
goto
是一种替代方案。
for (i=0; i<n; i++) {
if (ar[i] == 1) {
printf ("Wrong.n");
goto endofthefor;
}
else {
printf ("Correct.n");
goto endofthefor;
}
}
endofthefor: ;
如果您也不想使用goto
,那么使用标志来中断循环是一种方法。
{
int breaktheloop = 0;
for (i=0; !breaktheloop && i<n; (!breaktheloop) && (i++)) {
if (ar[i] == 1) {
printf ("Wrong.n");
breaktheloop = 1; continue;
}
else {
printf ("Correct.n");
breaktheloop = 1; continue;
}
}
}
CCD_ 5是指CCD_。我使用这个是因为我们不能在for
中放置语句。
您希望避免break语句的目的是什么?我能想到的第一个替代方案是goto声明
int main()
{
//declare 'ar' array
for (int i=0; i<n; i++) {
if (ar[i] == 1) {
printf ("Wrong.n");
goto someLabel;
}
else {
printf ("Correct.n");
goto someLabel;
}
}
someLabel:
printf("Hellon");
return 0;
}
您可以执行while循环,如:
int i = 0;
bool found = false;
while(i<n && !found) {
if (ar[i] == 1) {
printf ("Wrong.n");
found = true;
} else {
printf ("Correct.n");
found = true;
}
i++;
}
相关文章:
- 模板参数替换失败,并且未完成隐式转换
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 如何用转义符替换字符串中的所有特殊字符
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- 什么可以用来替换代码中的循环和 if 语句?
- 有没有更有效的方法来替换这些多个 IF 语句?
- 在文件中搜索 printf 语句并替换为字符串值
- C++:将'this'指针与"get"函数一起使用以替换 cout 语句的可能性
- 如何用逐位操作替换此if/else语句
- C++break语句替换
- 替换goto语句
- 用无分支代码替换if-else语句
- c++中重复结构中的for语句替换为while语句
- 我如何用等价的结构化语句替换continue和goto语句
- 在模板化代码和非模板化代码之间进行接口时替换switch语句
- sql语句插入或替换从java到c++ NDK Android