Commit 83e6efa6 authored by Rémy Huet's avatar Rémy Huet 💻

Case

parent f20aa198
Pipeline #33712 passed with stages
in 1 minute
......@@ -445,3 +445,104 @@ Age1 >= 17
\end{Verbatim}
\end{beamercolorbox}
\end{frame}
\subsection{La structure case}
\begin{frame}[fragile]{Introduction}
\begin{block}{Contexte}
Lorsqu'on veut réaliser des actions différentes en fonction de la valeur d'une seule variable, on peut faire un grand \texttt{if} avec beaucoup de \texttt{elif}.
Néanmoins, cela est assez lourd à écrire et peu lisible.
Dans ce genre de cas, on utilisera une autre structure, le \texttt{case}, qui permet d'alléger grandement le code.
\end{block}
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\begin{Verbatim}
#!/bin/bash
case $extension_ficher in
'.sh')
echo ``C'est un script \!''
;;
'.tex')
echo ``C'est un fichier LaTeX \!''
;;
'.doc' | '.xls' | '.ppt')
echo 'Houste !!!'
;;
*)
echo 'Je connais pas !'
;;
esac
\end{Verbatim}
\end{beamercolorbox}
\end{frame}
\begin{frame}[fragile]{Explications}
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\vspace{-10pt}
\begin{Verbatim}
case $exension_fichier in
\end{Verbatim}
\vspace{-5pt}
\end{beamercolorbox}
\begin{block}{}
On teste la valeur de la variable \verb+\$extension_ficher+ (que l'on suppose exister)
\end{block} \Pause
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\vspace{-10pt}
\begin{Verbatim}
'.sh')
echo ``C'est un script \!''
;;
\end{Verbatim}
\vspace{-5pt}
\end{beamercolorbox}
\begin{block}{}
Si c'est \texttt{.sh}, on affiche \enquote{C'est un script !}. Les deux \texttt{;;} signifient que c'est la fin de ce qu'il faut exécuter, et on sort du case.
\end{block} \Pause
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\vspace{-10pt}
\begin{Verbatim}
'.doc' | '.xls' | '.ppt')
echo 'Houste !!!'
;;
\end{Verbatim}
\vspace{-5pt}
\end{beamercolorbox}
\begin{block}{}
On peut effectuer la même action pour plusieurs valeurs.
\textbf{Attention} le \enquote{ou} s'écrit alors avec un seul \texttt{|}
\end{block}
\end{frame}
\begin{frame}[fragile]{Explications}
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\vspace{-10pt}
\begin{Verbatim}
*)
echo 'Je connais pas !'
;;
\end{Verbatim}
\vspace{-5pt}
\end{beamercolorbox}
\begin{block}{}
\enquote{\texttt{*}} est une \enquote{wildcard}. Tout correspond. Ici, tout ce qui n'est pas passé par une autre condition passe ici. C'est l'équivalent du \enquote{\texttt{else}}.
\end{block} \Pause
\begin{beamercolorbox}[rounded=true, shadow=true]{terminal}
\vspace{-10pt}
\begin{Verbatim}
esac
\end{Verbatim}
\vspace{-5pt}
\end{beamercolorbox}
\begin{block}{}
C'est \enquote{\texttt{case}} à l'envers !
\end{block}
\end{frame}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment