Kategorie-Archiv: C++

C++ Tipps und Tricks

C++ for

Die im Rumpf der for Schleife enthaltenen Anweisungen werden solange ausgeführt, bis die Auswertung des Schleifenkopfs false ergibt. Im Kopf der „for“ Schleife wird zuerst eine Laufvariable mit einen Startvalue initialisiert. Als nächstes wird eine Bedingung für den Durchlauf der Schleife erwartet. Im letzten Teil des Kopfes muss noch die Erhöhung bzw. die Verkleinerung der Laufvariablen definiert werden. Im nachfolgenden Beispiel ist „i“ die Laufvariable, i<10 ist die Bedingung für den Durchlauf und „i++“ steht für die Erhöhung der Laufvariablen. Beachten Sie das die Erhöhung bzw. Verkleinerung der Startvariablen in endlich vielen Schritten die Schranke der Laufbedingung durchbrechen muss, da es sich ansonsten um eine Endlosschleife handelt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
	int i;
 
	for(i=1; i < 10; i++)
	{
		cout << "Wert von i :" << i << endl;
	}
 
}

C++ do

Die im Rumpf der do Schleife enthaltenen Anweisungen werden solange ausgeführt, bis die Auswertung des Schleifenkopfs false ergibt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
	int i;
 
	do
	{
		cout << "Bitte 123 eingeben.";
		cin >> i;
	}while(i!=123);
 
}

Im Gegensatz zur while Schleife wird der Rumpf mindestens einmal durchlaufen, dabei wird der Wert des Schleifenkopfes noch nicht berücksichtigt.

Fallunterscheidung mit switch in C++

Das switch-Konstrukt dient der Fallunterscheinung und bedeutet übersetzt „schalten“. Eine übergebene Variable dient der switch-Anweisung dabei als Schalter. Im Anweisungsblock übernehmen Sprungmarken (case)die weitere Arbeit. Diesen Sprungmarken folgt eine Konstante sowie ein Doppelpunkt.
 
Ein kleines Beispiel:

1
2
3
4
5
6
7
8
9
10
11
switch(Variable)
{
 case 10:
 
 case 20:
 
 case 30:
 
 case 40:
 
}

 
 

Die Anzahl der case-Anweisungen ist beliebig. Hat die Variable den Wert 10 wird die entsprechende case-Anweisung und alle folgenden ausgeführt.
 

1
2
3
4
5
6
7
8
9
10
11
switch(Variable)
{
 case 10: cout << "Variable hat den Wert 10." << endl;
 
 case 20: cout << "Variable hat den Wert 20." << endl;
 
 case 30: cout << "Variable hat den Wert 30." << endl;
 
 case 40: cout << "Variable hat den Wert 40." << endl;
 
}

 

Nimmt Variable den Wert 40 an sieht die Ausgabe in Ordnung aus. Sollte der Wert der Variable aber bei 10 liegen erscheint der Text für alle case-Anweisungen.
Die Ausführung aller nachfolgenden case-Anweisungen kann nur durch die Verwendung der break-Anweisung unterbunden werden.
 

1
2
3
4
5
6
7
8
9
10
11
12
13
switch(Variable)
{
 case 10: cout << "Variable hat den Wert 10." << endl;
          break;
 
 case 20: cout << "Variable hat den Wert 20." << endl;
          break;
 
 case 30: cout << "Variable hat den Wert 30." << endl;
          break;
 
 case 40: cout << "Variable hat den Wert 40." << endl;
}

 
 
Die letzte Anweisung benötigt kein break, da der switch-Anweisungsblock sowieso endet.
 
 
Was aber, wenn keiner der Fälle zutrifft? Existiert keine zutreffende case-Anweisung, wird das Programm am Ende des switch-Anweisungsblockes fortgesetzt. Wenn dieser Fall abgefangen werden muss, benötigt man einen Fall, der dieses Problem löst. Dieser nennt sich default und wird immer dann angesprungen, wenn kein anderer Fall „zuständig“ ist.
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch(Variable)
{
 case 10: cout << "Variable hat den Wert 10." << endl;
          break;
 
 case 20: cout << "Variable hat den Wert 20." << endl;
          break;
 
 case 30: cout << "Variable hat den Wert 30." << endl;
          break;
 
 case 40: cout << "Variable hat den Wert 40." << endl;
          break;
 
 default: cout << "Es wurde eine falsche Zahl eingegeben." << endl;
}

 
 

Nachfolgend wurde das obige Beispiel mit if-Anweisungen nachgebaut.
 

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
if(Variable==10)
 cout << "Variable hat den Wert 10." << endl;
else
 if(Variable==20)
  cout << "Variable hat den Wert 20." << endl;
 else
  if(Variable==30)
   cout << "Variable hat den Wert 30." << endl;
  else
   if(Variable==40)
    cout << "Variable hat den Wert 40." << endl;
   else   
    cout << "Es wurde eine falsche Zahl eingegeben." << endl;
 
 
 
// oder so
 
 
if(Variable==10)
 cout << "Variable hat den Wert 10." << endl;
else
{
 if(Variable==20)
  cout << "Variable hat den Wert 20." << endl;
 else
 {
  if(Variable==30)
   cout << "Variable hat den Wert 30." << endl;
  else
  {
   if(Variable==40)
    cout << "Variable hat den Wert 40." << endl;
   else   
    cout << "Es wurde eine falsche Zahl eingegeben." << endl;
  }
 }
}