Algorithm 对switch语句使用Latex算法包?

Algorithm 对switch语句使用Latex算法包?,algorithm,latex,Algorithm,Latex,我的谷歌搜索没有想到如何在使用算法和算法包的算法中执行switch语句,但我假设你可以。大多数导游都没有提到这一点 \begin{algorithm} \caption{send(...) method} \begin{algorithmic} \IF{dest equals..} %\SWITCH{nature} \STATE cast data... \STATE extract data... \STATE copy... %\ENDSWITCH \ELSE \STATE match de

我的谷歌搜索没有想到如何在使用算法和算法包的算法中执行switch语句,但我假设你可以。大多数导游都没有提到这一点

\begin{algorithm}
\caption{send(...) method}
\begin{algorithmic}
\IF{dest equals..}
%\SWITCH{nature}
\STATE cast data...
\STATE extract data...
\STATE copy...
%\ENDSWITCH
\ELSE
\STATE match dest....
%\SWITCH{nature}
\STATE cast data...
\STATE extract data...
\STATE send...
%\ENDSWITCH
\ENDIF
\end{algorithmic}
\end{algorithm}

谢谢

如果查看,您会注意到,没有默认的SWITCH CASE语句。我想这就是为什么在这么多的文献中被遗漏的原因;)

我在latex文档中编写了以下定义。 看起来它们很管用。 只需在算法包的include语句之后的任意位置插入上述行。特别是,为了使算法表示简洁,我区分了复合情况和单行情况。单行案例以\CASELINE开头。复合大小写以\CASE开头,以\ENDCASE结尾。与默认语句类似

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% The following definitions are to extend the LaTeX algorithmic 
%% package with SWITCH statements and one-line structures.
%% The extension is by 
%%   Prof. Farn Wang 
%%   Dept. of Electrical Engineering, 
%%   National Taiwan University. 
%% 
\newcommand{\SWITCH}[1]{\STATE \textbf{switch} (#1)}
\newcommand{\ENDSWITCH}{\STATE \textbf{end switch}}
\newcommand{\CASE}[1]{\STATE \textbf{case} #1\textbf{:} \begin{ALC@g}}
\newcommand{\ENDCASE}{\end{ALC@g}}
\newcommand{\CASELINE}[1]{\STATE \textbf{case} #1\textbf{:} }
\newcommand{\DEFAULT}{\STATE \textbf{default:} \begin{ALC@g}}
\newcommand{\ENDDEFAULT}{\end{ALC@g}}
\newcommand{\DEFAULTLINE}[1]{\STATE \textbf{default:} }
%% 
%% End of the LaTeX algorithmic package extension.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
您可以尝试以下示例

\SWITCH {$\theta$}
\CASE {1}
  \STATE Hello
\ENDCASE
\CASELINE {2}
  \STATE Good-bye
\DEFAULT
  \STATE Again ?
\ENDDEFAULT
\ENDSWITCH
王法恩 电气工程系。
国立台湾大学

我尝试了你的方法,但我得到了
LaTeX错误:出了点问题--可能是缺少了\项。
带有
\ENDCASE
。是否需要在
\newcommands
之前编写一些内容?可能与
@
有关?