将流程图转换为c ++代码

Eur*_* Pe 2 c++ control-structure flowchart

我将此流程图转换为C++代码时遇到问题.

流程图

应该看起来有点像这样(我现在知道这是错的):

do {
  I1;
  if(!W1) {
      I2;
  ...
  }
}
Run Code Online (Sandbox Code Playgroud)

I1,I2,I3是指令.我想我应该使用布尔变量来正确地做,但是如何?

hau*_*ron 5

流程图中有一个循环.停止循环的条件实际上是W1.

while (!W1())
{
}
Run Code Online (Sandbox Code Playgroud)

I1执行(最初),并且在循环结束条件检查之前执行,所以让我们更新代码:

I1();
while (!W1())
{
}
Run Code Online (Sandbox Code Playgroud)

同样,I2是不加协作的:

I1();
while (!W1())
{              
   I2();
}
Run Code Online (Sandbox Code Playgroud)

现在,W2会影响我们是执行I1还是I3,让我们相应地更新代码:

I1();  // for the first, unconditional execution
while (!W1())
{
   I2();
   if (W2())
      I1();
   else
      I3();
}
Run Code Online (Sandbox Code Playgroud)