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 Arbeitnehmers 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 um 20 %, wenn die Anzahl der Aufgaben über 15 liegt, und einer zusätzlichen Erhöhung um 20 %, wenn die gearbeiteten Stunden über 40 liegen. Wie zu sehen ist, 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 erzielen.

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 genauso 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 an, 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 dies nicht korrekt; die Ausgabe beträgt 1000. Der Grund dafür ist, dass der Mitarbeiter, wenn er zwar 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 korrekte Implementierung zu erreichen.

Verschachtelte if-Anweisungen sind äußerst nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien im Code zu behandeln. Durch eine sorgfältige Strukturierung und die Beibehaltung der Lesbarkeit des Codes lässt sich die Leistungsfähigkeit verschachtelter if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Note
Hinweis

Verschachtelte if-Anweisungen sind in manchen Fällen notwendig, aber nicht immer. Im dritten Abschnitt wird erläutert, wann, warum und wie sie vermieden werden können.

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 an Wochenenden
      • 8.0 an Wochentagen
    • Ist der Kunde zwischen 18 und 60 Jahren, berechnen Sie:
      • 20.0 an Wochenenden
      • 15.0 an Wochentagen
    • Ist der Kunde über 60 Jahre, berechnen Sie:
      • 16.0 an Wochenenden
      • 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

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 show an example of nested `if` statements in code?

What are some best practices for using nested `if` statements?

Are there alternatives to nested `if` statements for complex logic?

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 Arbeitnehmers 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 um 20 %, wenn die Anzahl der Aufgaben über 15 liegt, und einer zusätzlichen Erhöhung um 20 %, wenn die gearbeiteten Stunden über 40 liegen. Wie zu sehen ist, 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 erzielen.

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 genauso 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 an, 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 dies nicht korrekt; die Ausgabe beträgt 1000. Der Grund dafür ist, dass der Mitarbeiter, wenn er zwar 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 korrekte Implementierung zu erreichen.

Verschachtelte if-Anweisungen sind äußerst nützlich, um Entscheidungsprozesse zu erstellen und komplexe Szenarien im Code zu behandeln. Durch eine sorgfältige Strukturierung und die Beibehaltung der Lesbarkeit des Codes lässt sich die Leistungsfähigkeit verschachtelter if-Anweisungen nutzen, um effiziente und wartbare Programme zu schreiben.

Note
Hinweis

Verschachtelte if-Anweisungen sind in manchen Fällen notwendig, aber nicht immer. Im dritten Abschnitt wird erläutert, wann, warum und wie sie vermieden werden können.

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 an Wochenenden
      • 8.0 an Wochentagen
    • Ist der Kunde zwischen 18 und 60 Jahren, berechnen Sie:
      • 20.0 an Wochenenden
      • 15.0 an Wochentagen
    • Ist der Kunde über 60 Jahre, berechnen Sie:
      • 16.0 an Wochenenden
      • 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

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