来自Schaums C++文本
删除goto-说使用标志
代码段:
const int N2 = 5;
int i, j, k;
for (i = 0; i < N2; i++)
{ for (j = 0; j < N2; j++)
{ for (k = 0; k < N2; k++)
if (i + j + k > N2)
goto esc;
else
cout << i + j + k << " ";
cout << "* ";
}
esc: cout << "." << endl;
}
Run Code Online (Sandbox Code Playgroud)
解决方案:
const int 5;
int i, j, k;
bool done = false;
for (i = 0; i < N2; i++)
{ for (j = 0; j < N2 && !done; j++)
{ for (k = 0; k < N2 && !done; k++)
if (i + j + k > N2)
done true;
else
cout << i + j + k << " ";
cout << "* ";
}
cout << "." << endl;
done = false;
}
Run Code Online (Sandbox Code Playgroud)
结构化解决方案的输出不会产生相同的结果......就像转到...我看不出问题
谢谢 ...
编写这种循环转义功能的好方法是返回; 声明.采取:
const int N2 = 5;
void inner_loop(const int i) {
for (int j = 0; j < N2; ++j)
{
for (int k = 0; k < N2; ++k)
{
if (i + j + k > N2)
return;
cout << i + j + k << " ";
}
cout << "* ";
}
}
for (int i = 0; i < N2; ++i)
{
inner_loop(i);
cout << "." << endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |