43 lines
1.5 KiB
TeX
43 lines
1.5 KiB
TeX
\section{今回の構文}
|
|
|
|
\subsection{\texttt{switch}文}
|
|
|
|
\texttt{switch}文は\texttt{if}文と同じように条件分岐を行う文である。
|
|
if文と違い、論理式・論理値による分岐ではなく、評価後の整数値によって分岐する。
|
|
それぞれの条件は\texttt{case}ラベルで記載され、コロン(\texttt{:})の後に処理を記述する。
|
|
処理の終わりは\texttt{break}文を書く。
|
|
ケースは縦落ちすることができ、\texttt{break}文を書かずにしておくことで複数の値に同じ処理を割り当てることができる。
|
|
\texttt{if}文における最後の\texttt{else}は\texttt{switch}文では\texttt{default}ラベルとなっている。\cite{switch_cppref}
|
|
|
|
\defaultlistingstyle
|
|
\begin{lstlisting}[language=C,title={\texttt{switch}文}]
|
|
switch (式) {
|
|
case <値1>:
|
|
<処理>... // 値1の場合の処理
|
|
break;
|
|
case <値2>:
|
|
<処理>... // 値1の場合の処理
|
|
break;
|
|
default:
|
|
<処理>... // それ以外の場合の処理
|
|
}
|
|
\end{lstlisting}
|
|
|
|
|
|
\begin{lstlisting}[language=C,title={縦落ち(Fall-through)する\texttt{switch}文}]
|
|
switch (式) {
|
|
case <値1>:
|
|
<処理>... // 値1の場合の処理
|
|
break;
|
|
case <値2>:
|
|
case <値3>:
|
|
<処理>... // 値2と値3の場合の処理
|
|
break;
|
|
case <値4>:
|
|
<処理>... // 値4の場合の処理
|
|
break;
|
|
default:
|
|
<処理>... // それ以外の場合の処理
|
|
}
|
|
\end{lstlisting}
|