C/C++-Grundlagen

Bedingungen, Schleifen und switch in C und C++

In dieser Lektion kombinierst du Schleifen und eine switch-Anweisung in einem kleinen Programm, das einen Durchschnitt berechnet und eine Note vergibt.

Einführung

Die if-Anweisung wählt anhand einer wahren oder falschen Bedingung einen Zweig, switch behandelt Fälle mit festen Werten, und Schleifen wiederholen einen Block, bis eine Abbruchbedingung erreicht ist. Die Schreibweise dieser Anweisungen ist in C und C++ fast identisch.

Wichtige Punkte

  • Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
  • Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
  • Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.

So funktioniert es

Ändere die Punktzahl mit dem Schieberegler. Das Flussdiagramm zeigt den Weg, den das Programm nimmt, und die passende Codezeile wird hervorgehoben.

Codebeispiele in C und C++

C
Code ausführen →
main.c
#include <stdio.h>

int main(void) {
    int scores[] = {92, 71, 84};
    int total = 0;
    for (int i = 0; i < 3; ++i) total += scores[i];
    int average = total / 3;
    switch (average / 10) {
        case 10: case 9: puts("Grade A"); break;
        case 8: puts("Grade B"); break;
        default: puts("Keep practicing");
    }
    return 0;
}
Ergebnis der Ausführung
Grade B
C++
Code ausführen →
main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{92, 71, 84};
    int total = 0;
    for (int score : scores) total += score;
    switch ((total / static_cast<int>(scores.size())) / 10) {
        case 10: case 9: std::cout << "Grade A\n"; break;
        case 8: std::cout << "Grade B\n"; break;
        default: std::cout << "Keep practicing\n";
    }
}
Ergebnis der Ausführung
Grade B

C und C++ im Vergleich

Die for-Schleife addiert die drei Punktzahlen, um den Durchschnitt zu berechnen, und switch wählt anhand von average / 10 die Note. Verwende immer geschweifte Klammern, auch wenn der Block nur eine Zeile hat, und setze am Ende jedes case ein break, damit das Programm nicht versehentlich in den nächsten case weiterläuft. Auch der Index eines Arrays muss immer innerhalb der Grenzen bleiben.

C

C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.

C++

C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.

Übungen zur Vertiefung

Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.

  • Teste ungültige Eingaben und Grenzwerte.
  • Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
  • Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges