Mal wegen des benötigten zusammenhangs der code für welches ich die switch verzweigung in eine schleife gepackt habe :
|
C-/C++-Quelltext
|
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
int main(){
char ampel;
char exit;
do
{
system("cls");
drawSpaces();
cout << " Ampelfarbe(RGK): ";
ampel = getche();
drawSpaces();
switch(ampel){
case 'R': cout << " Die Ampel ist rot. " << endl;
cout << " Anhalten! " << endl;
cout << " Programm verlassen (j/n)? ";
cin >> exit;
if(exit == 'j'){
cout << " Programm wird beendet ... ... ... ";
Sleep(5000);
return 0;
}
else{
break;
}
case 'G': cout << " Die Ampel ist gelb. " << endl;
cout << " Zum Anhalten bereit machen! " << endl;
cout << " Programm verlassen (j/n)? ";
cin >> exit;
if(exit == 'j'){
Sleep(5000);
return 0;
}
else{
break;
}
break;
case 'K': cout << " Die Ampel ist gruen. " << endl;
cout << " Fahren sie! " << endl;
cout << " Programm verlassen (j/n)? ";
cin >> exit;
if(exit == 'j'){
Sleep(5000);
return 0;
}
else{
break;
}
default: cout << " Ungueltige Eingabe" << endl;
cout << " Programm verlassen (j/n)? ";
cin >> exit;
if(exit == 'j'){
Sleep(5000);
return 0;
}
else{
break;
}
};
}while(true);
getchar();
return 0;
}
|
sprich ich möchte dem benutzer auch die möglichkeit geben, mindestens alle 3 ampelfarben"texte" ausgeben zu lassen, beenden kann er dann in jedem fall (rot, gelb oder grün) selbst. Deswegen geht für mich while(true) schon, da wenn ich beispielsweise ein U eingebe, kommt "ungültige eingabe, programm beenden?"
und das ist letztendlich was ich mit dem programm tun möchte.
|
C-/C++-Quelltext
|
1
|
while(true) //Solange true true ist, durchläufst du mal die Schleife hier
|
Woher soll der Compiler btw wissen, welche Variablen du abgleichen willst?
Schreibarbeit ist hier nicht Schreibarbeit, sondern wichtig für den logischen Kausalzusammenhang aus der Sicht des Compilers.
2)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
int bla=4;
bla*=5;
//Ausgabe: 20
int bla=4;
bla = bla*5;
//Ausgabe: 20
|
Es ist also in dem Fall eine Verkürzung des Schreibens, willst du auf eine Variable irgendwas addieren und soll die Variable selbst den Wert wieder annehmen, so ists einfacher += zu schreiben, als es mit foo=foo+5 zu machen.
Noch Fragen?
MfG
Check
1) siehe oben erklärung
2) OK thx für die erklärung dachte ich mir eig schon dass es nur eine verkürzung ist.
while(true) ist IMMER erfüllt, d. h. die Schleife wird endlos weiterlaufen, solange sie nicht innerhalb beendet wurde. Was das mit switch zu tun hat verstehe ich nicht ganz.
*=, +=, -= und /= sind Abkürzungen für eine Zuweisung und eine mathematische Operation.
|
C-/C++-Quelltext
|
1
2
|
x = x + 5; // x += 5;
x = x * 5; // x *= 5;
|
siehe oben erklärung