Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Verschachtelte If-Anweisungen | Einführung in Bedingte Anweisungen
C++ Bedingte Anweisungen
course content

Kursinhalt

C++ Bedingte Anweisungen

C++ Bedingte Anweisungen

1. Einführung in Bedingte Anweisungen
2. Übung zur Bedingten Steuerflusskontrolle
3. Fortgeschrittene Themen

book
Verschachtelte If-Anweisungen

Eine verschachtelte if-Anweisung ist einfach eine if-Anweisung innerhalb einer anderen if-Anweisung. Diese Struktur ermöglicht es Ihnen, mehrere Bedingungen nacheinander zu bewerten und spezifische Codeblöcke auszuführen.

h

nested_if

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

Die äußere if-Anweisung fungiert als Torwächter, und basierend auf ihrer Bewertung kann sie die Tür zu einer weiteren if-Anweisung im Inneren öffnen. Betrachten Sie ein Szenario, in dem wir das Gehalt eines Arbeiters basierend auf seiner Leistung bestimmen möchten.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }

Dieser Code berechnet das neue Gehalt eines Mitarbeiters basierend auf der Anzahl der erledigten Aufgaben und der geleisteten Arbeitsstunden, mit einer Erhöhung von 20%, wenn die Aufgaben über 15 sind und einer zusätzlichen Erhöhung von 20%, wenn die geleisteten Stunden über 40 sind. Wie Sie sehen können, beträgt die aktuelle Berechnung 1200. Und dies kann nur durch die Verwendung von verschachtelten if-Anweisungen erreicht werden, hier einige Versuche, die gleiche Logik ohne sie zu erreichen.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }

Zunächst mag es so scheinen, als ob es gleich funktioniert, aber in diesem Fall wird der Arbeiter eine zusätzliche Erhöhung von 20% erhalten, unabhängig davon, ob er mehr als 15 Aufgaben erledigt hat. Führen Sie den Code aus und schauen Sie sich die Ausgabe an, sie zeigt einen Wert von 1200, obwohl der Arbeiter diesmal nicht mehr als 15 Aufgaben erledigt hat.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }

In diesem Fall mag es so erscheinen, als sollte es wie beabsichtigt funktionieren, aber leider ist es auch falsch, die Ausgabe ist 1000. Das liegt daran, dass der Arbeiter, wenn er mehr als 15 Aufgaben erledigt, aber nicht mehr als 40 Stunden arbeitet, nichts erhält. Daher müssen wir verschachtelte if-Anweisungen verwenden, um die richtige Implementierung zu erhalten.

Verschachtelte if-Anweisungen sind wirklich nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien in Ihrem Code zu handhaben. Durch sorgfältiges Gestalten Ihrer Code-Struktur und Beibehalten der Lesbarkeit können Sie die Kraft von verschachtelten if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Hinweis

Verschachtelte if-Anweisungen sind in einigen Fällen notwendig, aber nicht immer. Im dritten Abschnitt werden wir besprechen, wann, warum und wie man sie vermeidet.

Aufgabe

Swipe to start coding

Wir haben einen Überschuss an rosa Telefonen in unserem Lager, die wir verkaufen müssen.

  1. Machen Sie einen 20% Rabatt auf rosa Telefone.
  2. Wenn der Preis eines Telefons $1.000 übersteigt, wird der Rabatt auf 10% reduziert.
  3. Für alle anderen Telefone erhöhen Sie den Preis um 10%.

Lösung

cpp

solution

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
toggle bottom row

book
Verschachtelte If-Anweisungen

Eine verschachtelte if-Anweisung ist einfach eine if-Anweisung innerhalb einer anderen if-Anweisung. Diese Struktur ermöglicht es Ihnen, mehrere Bedingungen nacheinander zu bewerten und spezifische Codeblöcke auszuführen.

h

nested_if

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

Die äußere if-Anweisung fungiert als Torwächter, und basierend auf ihrer Bewertung kann sie die Tür zu einer weiteren if-Anweisung im Inneren öffnen. Betrachten Sie ein Szenario, in dem wir das Gehalt eines Arbeiters basierend auf seiner Leistung bestimmen möchten.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }

Dieser Code berechnet das neue Gehalt eines Mitarbeiters basierend auf der Anzahl der erledigten Aufgaben und der geleisteten Arbeitsstunden, mit einer Erhöhung von 20%, wenn die Aufgaben über 15 sind und einer zusätzlichen Erhöhung von 20%, wenn die geleisteten Stunden über 40 sind. Wie Sie sehen können, beträgt die aktuelle Berechnung 1200. Und dies kann nur durch die Verwendung von verschachtelten if-Anweisungen erreicht werden, hier einige Versuche, die gleiche Logik ohne sie zu erreichen.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }

Zunächst mag es so scheinen, als ob es gleich funktioniert, aber in diesem Fall wird der Arbeiter eine zusätzliche Erhöhung von 20% erhalten, unabhängig davon, ob er mehr als 15 Aufgaben erledigt hat. Führen Sie den Code aus und schauen Sie sich die Ausgabe an, sie zeigt einen Wert von 1200, obwohl der Arbeiter diesmal nicht mehr als 15 Aufgaben erledigt hat.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }

In diesem Fall mag es so erscheinen, als sollte es wie beabsichtigt funktionieren, aber leider ist es auch falsch, die Ausgabe ist 1000. Das liegt daran, dass der Arbeiter, wenn er mehr als 15 Aufgaben erledigt, aber nicht mehr als 40 Stunden arbeitet, nichts erhält. Daher müssen wir verschachtelte if-Anweisungen verwenden, um die richtige Implementierung zu erhalten.

Verschachtelte if-Anweisungen sind wirklich nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien in Ihrem Code zu handhaben. Durch sorgfältiges Gestalten Ihrer Code-Struktur und Beibehalten der Lesbarkeit können Sie die Kraft von verschachtelten if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Hinweis

Verschachtelte if-Anweisungen sind in einigen Fällen notwendig, aber nicht immer. Im dritten Abschnitt werden wir besprechen, wann, warum und wie man sie vermeidet.

Aufgabe

Swipe to start coding

Wir haben einen Überschuss an rosa Telefonen in unserem Lager, die wir verkaufen müssen.

  1. Machen Sie einen 20% Rabatt auf rosa Telefone.
  2. Wenn der Preis eines Telefons $1.000 übersteigt, wird der Rabatt auf 10% reduziert.
  3. Für alle anderen Telefone erhöhen Sie den Preis um 10%.

Lösung

cpp

solution

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt