我们如何使用 algorithm2e 编写 if else if 块?

我们如何使用 algorithm2e 编写 if else if 块?

我已经为 if else if 块编写了代码,但我想要嵌套的 if else if 循环,例如

If (flag)
  If (c1) then
    c2
Else
  If (c3) then
    c4
\documentclass{article}
\usepackage[ruled, lined, commentsnumbered, longend]{algorithm2e}

\begin{document}

\begin{algorithm}
\If{(flag)}{
\uIf{c1\;}{c2\;} 
  
 \uElse{
 \uIf{c3\;}
  { c4\;}
  }}
\end{algorithm}
\end{document}

答案1

不要\;在条件中添加多余的行尾 ( )。并且您可以使用\uIfand/or\uElse来删除闭包。

以下可实现您所寻找的内容:

在此处输入图片描述

\documentclass{article}

\usepackage[ruled, lined, commentsnumbered, longend]{algorithm2e}

\begin{document}

\begin{algorithm}
  \uIf{(flag)}{
    \uIf{(c1)}{
      c2
    } 
  \uElse{
    \uIf{(c3)}{
      c4
    }
  }}
\end{algorithm}

\end{document}

答案2

我建议您使用algpseudocodex包裹。

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocodex}
\begin{document}
\begin{algorithm}
\caption{algorithm}
\label{alg}
\begin{algorithmic}[1]
\If{$a=b$}
\If{$a=b$}
\State $a=b$
\ElsIf{$a=b$}
\State $a=b$
\Else
\State $a=b$
\EndIf
\Else
\State $a=b$
\EndIf
\end{algorithmic}
\end{algorithm}
\end{document}

在此处输入图片描述

相关内容