You're not reading the latest revision of this page, which is here.

Switch Case Statement

Use a switch/case statement in variables environments to make sure your variables satisfy specific constraints

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\begin{variables}
  \randint{dice}{1}{3}
  \begin{switch}
 
    \begin{case}{dice=1}
      <variable definitions>
    \end{case}
 
    \begin{case}{dice=2}
      <variable definitions>
    \end{case}
 
    ...
 
    \begin{default}
      <variable definitions>
    \end{default}
 
  \end{switch}
\end{variables}
  • Every variable in a switch environment must have a default definition, but not a definition for every
    single case environment. (see example below)

  • There is no limitation on how many case environments you can use inside a switch environment.
    The default environment though is obligatory!

  • You can use switch/case statements globally and on question level.

Never use switch/case statements in combination with \randadjustIf. It is meant as an alternative.

Example 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
\begin{variables}
  \randint{a}{1}{5}
  \function{f0}{10*a}
 
  \begin{switch}
    \begin{case}{a>3}
      \number{c}{3}
      \randrat{d}{1}{2}{3}{7}
      \drawFromSet{m}{1,2,3}
      \function{f}{2*a}
      \derivative{g}{3x^2+sqrt(x)}{x}
      \substitute{h}{sqrt(y)}{y}{g}
      \string{s}{case 1}
    \end{case}
 
    \begin{case}{a=3}
      \number{c}{5}
    \end{case}
 
    \begin{default}
      \randint{c}{1}{10}
      \randrat{d}{-2}{-1}{3}{7}
      \drawFromSet{m}{-1,-2,-3}
      \function{f}{-2*a}        
      \derivative{g}{-3x^2+sqrt(x)}{x}  
      \substitute{h}{sqrt(y)}{y}{g}
      \string{s}{default case}
    \end{default}
 
  \end{switch}
 
\end{variables}

Example 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
\begin{problem}
  \begin{variables}
    \randint[Z]{s}{-1}{1}
    \begin{switch}
      \begin{case}{s>0}
        \string{equation}{
          \begin{equation*}
            \int \cos(x)\cdot e^x\,dx.
          \end{equation*}           
        }
      \end{case}         
      \begin{default}
        \string{equation}{
          \begin{equation*}
            \int \sin(x)\cdot e^x\,dx.
          \end{equation*}
        }
      \end{default}
    \end{switch}
    \function{f1}{1/2*exp(x)*(sin(x)+s*cos(x))}
  \end{variables}
 
  \begin{question}\type{input.function}   
    \text{
      Lösen Sie das folgende unbestimmte Integral mittels partieller Integration
      \\
      \var{equation}
      \\
      Die Lösung lautet $F(x)= $ \ansref $+\ c$.
    }      
    \begin{answer}
      \solution{f1}
      \inputAsFunction{x}{A0}
      \checkFuncForZero{A0-f1}{-1}{1}{10}
      \end{answer}
  \end{question}
\end{problem}