[Tex/LaTex] math conditionals using (if – else – fi) command

conditionalsmacros

I saw these command when i searching sth. I wonder if we can increase numbers if conditions.

it's like if{0} = a, if{1}=b, if{2}=c, if{3}=d etc.

\newcommand{mycommand}[1]{
\if{#1 != 0}
Some text, because it's nonzero
\else
Some other text, because it's zero
\fi
}

\mycommand{0}
\mycommand{1}

Best Answer

You can do much better: a \newcasecommand that can deal with arbitrary labels, not only numbers.

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\newcasecommand}{ m m O{No~default~value} }
 {
  \cs_new_protected:Npn #1 ##1
   {
    \str_case:nnF { ##1 } { #2 } { #3 }
   }
 }
\ExplSyntaxOff

\newcasecommand{\mycommand}{%
 {0}{The number is zero}
 {1}{The number is one}
 {x}{We have x}
}[Boo!]

\begin{document}

\mycommand{0}

\mycommand{1}

\mycommand{x}

\mycommand{foo}

\end{document}

The syntax is

\newcasecommand{<command>}{
  {<string-a>}{<text for case a>}
  {<string-b>}{<text for case b>}
  ...
 }[<text for no match>]

The final argument is optional; the default is printing an informative text, which could be turned into a warning.

enter image description here