以下是该流程图的链接: http://i1146.photobucket.com/albums/o530/HTHVampire/C%20plus%20plus/Capture_zps5a6c3acf.jpg
这是所示流程图的代码,只是忽略流程图中的模糊语句。
#include <iostream>
using namespace std;
int main()
{
//declare and initialize a variable
int a = 0;
//prompt user for a value
cout << "please enter a value" << endl;
cin >> a;
again1:
//enter a decision block
if(a > 10)
{
if(a < 10)
{
again2:
if(a < 100)
{
a = a - 3;
goto again2;
}
else goto again1;
}
else
{
a = a - 7;
goto again1;
}
}
else cout << "the output is " << a << endl;
return 0;
}
我可以知道我可以使用if-else语句和while语句一起播放此代码吗?而不是goto声明。
感谢您的导游!
答案 0 :(得分:6)
该结构应根据流程图执行核心逻辑:
while (a > 10) {
if (a < 10) {
while (a < 100) {
a += 3;
}
} else {
a -= 7;
}
}
请注意if
测试是荒谬的。但是,我没有绘制流程图;我只是在代码中复制它。
答案 1 :(得分:2)
只要限制使用状态机,goto就没有问题。 许多教师因缺乏理解而错误地禁止使用它。 对于像你这样的简单状态机和协议解码,它产生极其可读的代码。我破坏了多年的嵌入式C例程,因为我害怕使用goto。
我开始使用goto,我的手指画变成了梵高。