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

bookHerausforderung: Verschachtelte If-Anweisungen

Eine verschachtelte if-Anweisung ist einfach eine if-Anweisung innerhalb einer anderen if-Anweisung. Diese Struktur ermöglicht die Auswertung mehrerer Bedingungen nacheinander und die Ausführung spezifischer Codeblöcke.

nested_if.h

nested_if.h

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

Die äußere if-Anweisung fungiert als Türsteher und kann je nach Auswertung den Zugang zu einer weiteren if-Anweisung im Inneren ermöglichen. Betrachten Sie ein Szenario, in dem das Gehalt eines Mitarbeiters basierend auf seiner Leistung bestimmt werden soll.

main.cpp

main.cpp

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 gearbeiteten Stunden, mit einer Erhöhung von 20 %, wenn die Anzahl der Aufgaben über 15 liegt, und einer zusätzlichen Erhöhung von 20 %, wenn die gearbeiteten Stunden über 40 liegen. Wie ersichtlich, beträgt die aktuelle Berechnung 1200. Dies kann nur durch die Verwendung von verschachtelten if-Anweisungen erreicht werden. Hier sind einige Versuche, die gleiche Logik ohne diese zu realisieren.

main.cpp

main.cpp

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 erscheinen, als würde es gleich funktionieren, aber in diesem Fall erhält der Mitarbeiter unabhängig davon, ob er mehr als 15 Aufgaben erledigt hat, eine zusätzliche Gehaltserhöhung von 20 %. Führen Sie den Code aus und betrachten Sie die Ausgabe; sie zeigt einen Wert von 1200, obwohl der Mitarbeiter diesmal nicht mehr als 15 Aufgaben erledigt hat.

main.cpp

main.cpp

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 könnte es so wirken, als würde es wie beabsichtigt funktionieren, aber leider ist auch das nicht korrekt; die Ausgabe ist 1000. Das liegt daran, dass der Mitarbeiter, wenn er mehr als 15 Aufgaben erledigt, aber nicht mehr als 40 Stunden arbeitet, nichts erhält. Daher müssen verschachtelte if-Anweisungen verwendet werden, um die richtige Implementierung zu erreichen.

Verschachtelte if-Anweisungen sind äußerst nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien in Ihrem Code zu behandeln. Durch eine sorgfältige Gestaltung der Code-Struktur und die Wahrung der Lesbarkeit können Sie die Vorteile verschachtelter if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Hinweis

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

Aufgabe

Swipe to start coding

Sie entwickeln ein Kinoticket-System. Die Ticketpreise variieren je nach Alter des Kunden und ob es sich um ein Wochenende oder einen Wochentag handelt.

  1. Verwenden Sie verschachtelte if-Anweisungen, um den Ticketpreis zu bestimmen:
    • Ist der Kunde unter 18 Jahren, berechnen Sie:
      • 12.0 am Wochenende
      • 8.0 an Wochentagen
    • Ist der Kunde zwischen 18 und 60 Jahren, berechnen Sie:
      • 20.0 am Wochenende
      • 15.0 an Wochentagen
    • Ist der Kunde über 60 Jahre, berechnen Sie:
      • 16.0 am Wochenende
      • 10.0 an Wochentagen
  2. Geben Sie den Ticketpreis aus der Funktion zurück.

Beispiel

calculateTicketPrice(16, true)12.0
calculateTicketPrice(30, false)15.0
calculateTicketPrice(70, true)16.0

Lösung

solution.cpp

solution.cpp

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you give an example of when nested `if` statements are necessary?

What are some alternatives to using nested `if` statements?

Can you explain how to avoid nested `if` statements in certain scenarios?

close

Awesome!

Completion rate improved to 7.69

bookHerausforderung: Verschachtelte If-Anweisungen

Swipe um das Menü anzuzeigen

Eine verschachtelte if-Anweisung ist einfach eine if-Anweisung innerhalb einer anderen if-Anweisung. Diese Struktur ermöglicht die Auswertung mehrerer Bedingungen nacheinander und die Ausführung spezifischer Codeblöcke.

nested_if.h

nested_if.h

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

Die äußere if-Anweisung fungiert als Türsteher und kann je nach Auswertung den Zugang zu einer weiteren if-Anweisung im Inneren ermöglichen. Betrachten Sie ein Szenario, in dem das Gehalt eines Mitarbeiters basierend auf seiner Leistung bestimmt werden soll.

main.cpp

main.cpp

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 gearbeiteten Stunden, mit einer Erhöhung von 20 %, wenn die Anzahl der Aufgaben über 15 liegt, und einer zusätzlichen Erhöhung von 20 %, wenn die gearbeiteten Stunden über 40 liegen. Wie ersichtlich, beträgt die aktuelle Berechnung 1200. Dies kann nur durch die Verwendung von verschachtelten if-Anweisungen erreicht werden. Hier sind einige Versuche, die gleiche Logik ohne diese zu realisieren.

main.cpp

main.cpp

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 erscheinen, als würde es gleich funktionieren, aber in diesem Fall erhält der Mitarbeiter unabhängig davon, ob er mehr als 15 Aufgaben erledigt hat, eine zusätzliche Gehaltserhöhung von 20 %. Führen Sie den Code aus und betrachten Sie die Ausgabe; sie zeigt einen Wert von 1200, obwohl der Mitarbeiter diesmal nicht mehr als 15 Aufgaben erledigt hat.

main.cpp

main.cpp

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 könnte es so wirken, als würde es wie beabsichtigt funktionieren, aber leider ist auch das nicht korrekt; die Ausgabe ist 1000. Das liegt daran, dass der Mitarbeiter, wenn er mehr als 15 Aufgaben erledigt, aber nicht mehr als 40 Stunden arbeitet, nichts erhält. Daher müssen verschachtelte if-Anweisungen verwendet werden, um die richtige Implementierung zu erreichen.

Verschachtelte if-Anweisungen sind äußerst nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien in Ihrem Code zu behandeln. Durch eine sorgfältige Gestaltung der Code-Struktur und die Wahrung der Lesbarkeit können Sie die Vorteile verschachtelter if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Hinweis

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

Aufgabe

Swipe to start coding

Sie entwickeln ein Kinoticket-System. Die Ticketpreise variieren je nach Alter des Kunden und ob es sich um ein Wochenende oder einen Wochentag handelt.

  1. Verwenden Sie verschachtelte if-Anweisungen, um den Ticketpreis zu bestimmen:
    • Ist der Kunde unter 18 Jahren, berechnen Sie:
      • 12.0 am Wochenende
      • 8.0 an Wochentagen
    • Ist der Kunde zwischen 18 und 60 Jahren, berechnen Sie:
      • 20.0 am Wochenende
      • 15.0 an Wochentagen
    • Ist der Kunde über 60 Jahre, berechnen Sie:
      • 16.0 am Wochenende
      • 10.0 an Wochentagen
  2. Geben Sie den Ticketpreis aus der Funktion zurück.

Beispiel

calculateTicketPrice(16, true)12.0
calculateTicketPrice(30, false)15.0
calculateTicketPrice(70, true)16.0

Lösung

solution.cpp

solution.cpp

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
single

single

some-alt