如何用“表示循环”;“继续”;PlantUML活动图中的C语句

如何用“表示循环”;“继续”;PlantUML活动图中的C语句,c,uml,activity-diagram,plantuml,C,Uml,Activity Diagram,Plantuml,我需要使用PlantUML将下面的C代码转换为活动图 实现下面代码中的“continue”语句的好解决方案是什么 void函数_1(){ int a=0; int b=0; for(int i;i=2),则为else { b=2; } 其他的 { /*-无事可做*/ /*-此声明是我们不想处理的证据 /*其他情况,而不是仅仅忘记它们*/ /*-可根据需要在将来用于扩展*/ } } } 我不懂C,但在我看来,用PlantUML表示逻辑的一种方法如下: start while (i < 8 ?

我需要使用PlantUML将下面的C代码转换为活动图

实现下面代码中的“continue”语句的好解决方案是什么

void函数_1(){
int a=0;
int b=0;
for(int i;i<8;i++)
{
如果(i<2)
{
继续;
}
如果(i>4)
{
a=1;
}           
其他的
{
b=2;
}
}
}

无论是否将代码转换为另一种语言,我都会首先通过以下方式对其进行优化:

void function_1(){
int a = 0;
int b =0;
  for (int i=0; i < 8; i++)
  {
    if (i > 4)
    {
        a = 1;
    }           
    else if ( i >= 2 )
    {
       b = 2;
    }
    else
    {
        /* - nothing to do */
        /* - this statement is here as proof that we do not want to handle
        /*   other cases, as opposed to just forgetting about them */
        /* - it can be used in the future for extension, as needed */
    }
  }
}
void函数_1(){
int a=0;
int b=0;
对于(int i=0;i<8;i++)
{
如果(i>4)
{
a=1;
}           
如果(i>=2),则为else
{
b=2;
}
其他的
{
/*-无事可做*/
/*-此声明是我们不想处理的证据
/*其他情况,而不是仅仅忘记它们*/
/*-可根据需要在将来用于扩展*/
}
}
}

我不懂C,但在我看来,用PlantUML表示逻辑的一种方法如下:

start
while (i < 8 ?)
  if (i > 4 ?) then (yes)
      :a = 1;
  else (no)
      if (i >= 2 ?) then (yes)
      :b = 2;
      else (no)
      endif
  endif
 endwhile (no)
:Carry out the next task;
end
开始
而(我<8?)
如果(i>4?)那么(是)
:a=1;
其他(否)
如果(i>=2?)那么(是)
:b=2;
其他(否)
恩迪夫
恩迪夫
结束时(否)
:执行下一项任务;
结束
“执行下一个任务”任务是一个占位符。它应该替换为应用程序下一步应该执行的操作

这将产生:


欢迎来到StackOverflow。你的代码除了在一个无限循环中之外,永远不会做任何事情,因为每次它循环时你都会设置
i=5
。不管怎样,我更正了代码。感谢PlantUML在可表示语言构造方面有点受限。为了尽可能接近所需的输出,可能需要一种变通方法。你能澄清一下期望的输出是什么吗?在我看来,这是极少数有助于拍照的场合之一。甚至可能是手绘的图表。或者你可以试着在网上找到一个与你想要的相似的例子。如果(i<2){continue;}的部分实际上意味着在这种情况下你不需要做任何事情。因此,假装它不存在。如果我正确理解了所需的结果,这应该没问题。@virolino:if(I<2){continue;}不会做任何事情,但应该出现在图表中。在我看来,您缺少for循环。continue语句的意思是(Kenningham和Ritchie,C编程语言1978,第203页和第62页):使控制传递到最小封闭while、do或for语句的循环继续部分;那就是结束循环。在另一个地方,它声明:它导致封闭循环的下一次迭代(for,while,do)开始。你完全正确,@albert。我在plantUML图表中添加了
while
语句。作为
elseif
的旁注,该图表看起来更好(在我看来)