You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/14-switch/article.md
+22-22Lines changed: 22 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Die "switch" Anweisung
2
2
3
-
Eine `switch` Anweisung kann mehrere `if`Prüfungen ersetzen.
3
+
Eine `switch` Anweisung kann mehrere `if`Anweisungen ersetzen.
4
4
5
-
Es bietet eine anschaulichere Möglichkeit, einen Wert mit mehreren Varianten zu vergleichen.
5
+
Sie bietet eine anschauliche Möglichkeit, einen Wert mit mehreren Varianten zu vergleichen.
6
6
7
-
## Der Syntax
7
+
## Die Syntax
8
8
9
-
Die `switch` Anweisung hat eine oder mehrere `case`Blöcke und einen optionalen default-Block.
9
+
Die `switch` Anweisung hat eine oder mehrere `case`Marken und eine optionale default Marke.
10
10
11
-
Es sieht wie folgt aus:
11
+
Das sieht wie folgt aus:
12
12
13
13
```js no-beautify
14
14
switch(x) {
@@ -26,7 +26,7 @@ switch(x) {
26
26
}
27
27
```
28
28
29
-
- Der Wert von `x` wird auf eine strikte Gleichheit mit dem Wert aus dem ersten `case`geprüft. (das ist,`value1`) dann mit dem zweiten (`value2`) und so weiter.
29
+
- Der Wert von `x` wird auf strikte Gleichheit mit dem Wert aus dem ersten `case`verglichen, (das ist `value1`) dann mit dem zweiten (`value2`) und so weiter.
30
30
- Wenn eine Übereinstimmung gefunden wurde, führt `switch` den Code, ausgehend vom entsprechenden `case`, bis zum nächsten `break` aus (oder bis zum Ende der `switch` Anweisung).
31
31
- Wenn kein `case` zutrifft, wird der Code im `default` Block ausgeführt (falls dieser existiert).
````smart header="Jeder Ausdruck kann ein `switch/case` Argument sein"
91
-
`switch` und `case` erlauben willkürliche Ausdrücke.
91
+
`switch` und `case` erlauben beliebige Ausdrücke.
92
92
93
93
Zum Beispiel:
94
94
@@ -99,15 +99,15 @@ let b = 0;
99
99
switch (+a) {
100
100
*!*
101
101
case b +1:
102
-
alert("Das funktioniert, weil +a entspricht 1, und darum genau gleich wie b+1 ist");
102
+
alert("Das funktioniert, weil +a gleich 1 ist, und damit genau gleich wie b+1");
103
103
break;
104
104
*/!*
105
105
106
106
default:
107
107
alert("Wird nicht durchlaufen");
108
108
}
109
109
```
110
-
Hier ergibt `+a` den Wert `1`, welcher im `case` mit `b + 1` verglichen wird, und der entsprechende Code ausgeführt wird.
110
+
Hier ergibt `+a` den Wert `1`, welcher im `case` mit `b + 1` verglichen wird, worauf der entsprechende Code ausgeführt wird.
111
111
````
112
112
113
113
## Grupieren von "case"
@@ -125,7 +125,7 @@ switch (a) {
125
125
break;
126
126
127
127
*!*
128
-
case 3: // (*) grouped two cases
128
+
case 3: // (*) zwei Fälle gruppiert
129
129
case 5:
130
130
alert('Falsch!');
131
131
alert("Warum besuchst du nicht einen Mathekurs?");
@@ -137,36 +137,36 @@ switch (a) {
137
137
}
138
138
```
139
139
140
-
Now both `3` and `5` show the same message.
140
+
Nun zeigen `3` und `5` die selbe Nachricht.
141
141
142
-
The ability to "group" cases is a side-effect of how `switch/case` works without `break`. Here the execution of `case 3` starts from the line `(*)` and goes through `case 5`, because there's no `break`.
142
+
Die Fähigkeit cases zu "grupieren" ist ein Seiteneffekt davon, wie `switch/case` ohne `break` funktioniert. Hier beginnt die Ausführung von `case 3` in der Zeile `(*)` und durchläuft `case 5`, weil dosich dort kein `break` befindet.
143
143
144
-
## Type matters
144
+
## Der Typ spielt eine Rolle
145
145
146
-
Let's emphasize that the equality check is always strict. The values must be of the same type to match.
146
+
Wichtig ist, dass die Gleichheitsprüfung immer streng ist. Die Werte müssen vom gleichen Typ sein, damit sie übereinstimmen.
147
147
148
-
For example, let's consider the code:
148
+
Betrachten wir zum Beispiel folgenden Code:
149
149
150
150
```js run
151
-
let arg = prompt("Enter a value?");
151
+
let arg = prompt("Wert eingeben?");
152
152
switch (arg) {
153
153
case '0':
154
154
case '1':
155
-
alert( 'One or zero' );
155
+
alert( 'Eins oder null' );
156
156
break;
157
157
158
158
case '2':
159
159
alert( 'Two' );
160
160
break;
161
161
162
162
case 3:
163
-
alert( 'Never executes!' );
163
+
alert( 'Wird niemals ausgeführt!' );
164
164
break;
165
165
default:
166
-
alert( 'An unknown value' );
166
+
alert( 'Ein unbekannter Wert' );
167
167
}
168
168
```
169
169
170
-
1. For `0`, `1`, the first `alert` runs.
171
-
2. For `2` the second `alert` runs.
172
-
3. But for `3`, the result of the `prompt` is a string `"3"`, which is not strictly equal `===` to the number `3`. So we've got a dead code in `case 3`! The `default` variant will execute.
170
+
1. Für `0`, `1`, wird der erste `alert` ausgeführt.
171
+
2. Für `2` wird der zweite `alert` ausgeführt.
172
+
3. Aber für `3`, ist das Resultat des `prompt` ein String `"3"`, welcher nicht streng gleich `===` der Zahl `3` entspricht. Also haben wir toten Code in `case 3`! Die `default` Variante wird ausgeführt.
0 commit comments