【PlantUML系列】流程图(四)

目录

目录

一、基础用法

[1.1 开始和结束](#1.1 开始和结束)

[1.2 操作步骤](#1.2 操作步骤)

[1.3 条件判断](#1.3 条件判断)

[1.4 并行处理](#1.4 并行处理)

[1.5 循环](#1.5 循环)

[1.6 分区](#1.6 分区)

[1.7 泳道](#1.7 泳道)

一、基础用法

1.1 开始和结束

开始一般使用**++start++关键字;结束一般使用++stop/end++** 关键字。基础用法包括:

  • start ... stop

  • start ... end

    @startuml
    start
    :执行操作A;
    stop
    @enduml

1.2 操作步骤

语法为++:operation++ ,其中 operation 是你为该步骤定义的名称。例如:

复制代码
@startuml
:开始;
:执行操作A;
:执行操作B;
:结束;
@enduml

1.3 条件判断

使用PlantUML语法通常使用++if-else++关键字。通常由三种语法:

  • if (...) then (...) ... [else (...) ...] endif
  • if (...) is (...) then ... [else (...) ...] endif
  • if (...) equals (...) then ... [else (...) ...] endif

例如:

复制代码
@startuml
:开始;
:执行操作A;
:判断是否满足条件;
if (满足条件) then (是)
  :执行操作B;
else (否)
  :执行操作C;
endif

if (条件) is (是) then
   :执行操作D;
else
   :执行操作E;
endif

if (条件) equals (是) then
   :执行操作F;
else
   :执行操作G;
endif
:结束;
@enduml

多分支判断使用++elseif++关键字,其中包含水平模式、垂直模式;

  • 水平模式

    @startuml
    start
    if (condition A) then (yes)
    :Text 1;
    elseif (condition B) then (yes)
    :Text 2;
    stop
    (no) elseif (condition C) then (yes)
    :Text 3;
    (no) elseif (condition D) then (yes)
    :Text 4;
    else (nothing)
    :Text else;
    endif
    stop
    @enduml

  • 垂直模式 :使用**!pragma useVerticalIf on**进入垂直模式。

    ​@startuml
    start
    !pragma useVerticalIf on
    if (condition A) then (yes)
    :Text 1;
    elseif (condition B) then (yes)
    :Text 2;
    stop
    (no) elseif (condition C) then (yes)
    :Text 3;
    (no) elseif (condition D) then (yes)
    :Text 4;
    else (nothing)
    :Text else;
    endif
    stop
    @enduml

1.4 并行处理

并行处理可以用 forkjoin 来表示,fork 表示分支开始,merge 表示分支合并。

  • fork ... fork again ... end fork

  • fork ... fork again ... end merge

    @startuml
    start
    fork
    :action 1;
    fork again
    :action 2;
    end fork

    fork
    :action 3;
    fork again
    :action 4;
    end merge
    stop
    @enduml

1.5 循环

循环包括无条件循环(Repeat loop)、有条件循环(While loop),典型的写法包括:

  • repeat ... repeat while (...) is (...) not (...)
  • repeat ... backward ... repeat while (...) is (...) -> (...)
  • while (...) end while

repeat案例:

复制代码
@startuml
start

repeat
  :read data;
  :generate diagrams;
repeat while (more data?) is (yes) not (no)

repeat
  :read data;
  :generate diagrams;
backward :write data;
repeat while (more data?) is (yes)
-> no;
  :next action;

while (check filesize ?) is (not empty)
  :read file;
  backward:log;
endwhile (empty)
:close file;

stop
@enduml

1.6 分区

在PlantUML中,Partition 是用来定义分区的关键字,它允许你将多个活动组合在一起。

复制代码
@startuml
start
partition Initialization {
    :read config file;
    :init internal variable;
}
partition Running {
    :wait for user interaction;
    :print information;
}

stop
@enduml

1.7 泳道

在PlantUML中,使用++|Swimlane1|++来表示泳道,例如:

复制代码
@startuml
|Swimlane1|
start
:foo1;
|#AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml

参考资料:New Activity Diagram Beta syntax and features

相关推荐
min1811234562 天前
小型网站开发简易流程步骤 在线画图工具快速生成开发流程图方法
论文阅读·信息可视化·毕业设计·流程图·论文笔记
DYuW5gBmH3 天前
Kafka 成功消费消息的完整流程图
分布式·kafka·流程图
数说星榆1815 天前
无人员伤亡车辆事故处理流程图 快速结案流程
架构·电脑·流程图·职场发展·课程设计
dajun1811234565 天前
信息系统运维管理全流程详解 在线画图工具绘制运维流程图表技巧
运维·数据库·信息可视化·流程图·旅游·论文笔记
数说星榆1815 天前
罕见病例报告流程图学术论文用
论文阅读·人工智能·流程图
fish-man6 天前
测试流程图显示
流程图
橙色日落6 天前
Vue2 + LogicFlow 实现可视化流程图编辑功能+常用属性大全
前端·vue·流程图·logicflow
数说星榆1817 天前
油气勘探数据可视化流程图制作
论文阅读·信息可视化·毕业设计·流程图·论文笔记·毕设
纪伊路上盛名在7 天前
PPT汇报中方法学、框架流程图的 文生图方案1
人工智能·文生图·流程图·科研·agent
檐下翻书1737 天前
小型网站开发简易流程步骤 在线画图工具快速生成开发流程图方法
论文阅读·信息可视化·流程图