Utfordring: Nestede If-setninger
En nestet if-setning er rett og slett en if-setning inne i en annen if-setning. Denne strukturen gjør det mulig å evaluere flere betingelser, én etter én, og utføre spesifikke kodeblokker.
nested_if.h
1234567891011121314if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }
Den ytre if-setningen fungerer som en portvakt, og basert på dens evaluering, kan den åpne døren til en annen if-setning inni. Tenk deg et scenario der vi ønsker å fastslå en arbeidstakers lønn basert på prestasjon.
main.cpp
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; }
Denne koden beregner en ansatts nye lønn basert på antall fullførte oppgaver og arbeidede timer, med en økning på 20 % hvis oppgavene er over 15, og en ytterligere økning på 20 % hvis arbeidede timer er over 40. Som du ser, er den nåværende beregningen 1200. Dette kan kun oppnås ved å bruke nestede if-setninger, her er noen forsøk på å oppnå samme logikk uten dem.
main.cpp
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; }
Først kan det virke som om det fungerer på samme måte, men i dette tilfellet vil arbeidstakeren få en ekstra 20 % lønnsøkning, uavhengig av om vedkommende har fullført mer enn 15 oppgaver. Kjør koden og se på utdataene, den viser en verdi på 1200, selv om arbeidstakeren denne gangen ikke har fullført mer enn 15 oppgaver.
main.cpp
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; }
I dette tilfellet kan det virke som om det skal fungere som forventet, men dessverre er det også feil, utdataene er 1000. Dette er fordi hvis arbeidstakeren fullfører mer enn 15 oppgaver, men ikke jobber mer enn 40 timer, får vedkommende ingenting. Derfor må vi bruke nøstede if-setninger for å få riktig implementasjon.
Nestede if-setninger er svært nyttige for å lage beslutningsprosesser og håndtere komplekse scenarier i koden din. Ved å utforme kode-strukturen nøye og opprettholde lesbarhet, kan du utnytte kraften i nestede if-setninger for å skrive effektive og vedlikeholdbare programmer.
Nestede if-setninger er nødvendige i enkelte tilfeller men ikke alltid. I den tredje delen vil vi diskutere når, hvorfor og hvordan de kan unngås.
Swipe to start coding
Du lager et kinobillettsystem. Billettprisene varierer avhengig av kundens alder og om det er helg eller hverdag.
- Bruk nøstede if-setninger for å bestemme billettprisen:
- Hvis kunden er under 18 år, ta betalt:
12.0i helgene8.0på hverdager
- Hvis kunden er mellom 18 og 60 år, ta betalt:
20.0i helgene15.0på hverdager
- Hvis kunden er over 60 år, ta betalt:
16.0i helgene10.0på hverdager
- Hvis kunden er under 18 år, ta betalt:
- Returner billettprisen fra funksjonen.
Eksempel
calculateTicketPrice(16, true) → 12.0
calculateTicketPrice(30, false) → 15.0
calculateTicketPrice(70, true) → 16.0
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 7.69
Utfordring: Nestede If-setninger
Sveip for å vise menyen
En nestet if-setning er rett og slett en if-setning inne i en annen if-setning. Denne strukturen gjør det mulig å evaluere flere betingelser, én etter én, og utføre spesifikke kodeblokker.
nested_if.h
1234567891011121314if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }
Den ytre if-setningen fungerer som en portvakt, og basert på dens evaluering, kan den åpne døren til en annen if-setning inni. Tenk deg et scenario der vi ønsker å fastslå en arbeidstakers lønn basert på prestasjon.
main.cpp
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; }
Denne koden beregner en ansatts nye lønn basert på antall fullførte oppgaver og arbeidede timer, med en økning på 20 % hvis oppgavene er over 15, og en ytterligere økning på 20 % hvis arbeidede timer er over 40. Som du ser, er den nåværende beregningen 1200. Dette kan kun oppnås ved å bruke nestede if-setninger, her er noen forsøk på å oppnå samme logikk uten dem.
main.cpp
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; }
Først kan det virke som om det fungerer på samme måte, men i dette tilfellet vil arbeidstakeren få en ekstra 20 % lønnsøkning, uavhengig av om vedkommende har fullført mer enn 15 oppgaver. Kjør koden og se på utdataene, den viser en verdi på 1200, selv om arbeidstakeren denne gangen ikke har fullført mer enn 15 oppgaver.
main.cpp
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; }
I dette tilfellet kan det virke som om det skal fungere som forventet, men dessverre er det også feil, utdataene er 1000. Dette er fordi hvis arbeidstakeren fullfører mer enn 15 oppgaver, men ikke jobber mer enn 40 timer, får vedkommende ingenting. Derfor må vi bruke nøstede if-setninger for å få riktig implementasjon.
Nestede if-setninger er svært nyttige for å lage beslutningsprosesser og håndtere komplekse scenarier i koden din. Ved å utforme kode-strukturen nøye og opprettholde lesbarhet, kan du utnytte kraften i nestede if-setninger for å skrive effektive og vedlikeholdbare programmer.
Nestede if-setninger er nødvendige i enkelte tilfeller men ikke alltid. I den tredje delen vil vi diskutere når, hvorfor og hvordan de kan unngås.
Swipe to start coding
Du lager et kinobillettsystem. Billettprisene varierer avhengig av kundens alder og om det er helg eller hverdag.
- Bruk nøstede if-setninger for å bestemme billettprisen:
- Hvis kunden er under 18 år, ta betalt:
12.0i helgene8.0på hverdager
- Hvis kunden er mellom 18 og 60 år, ta betalt:
20.0i helgene15.0på hverdager
- Hvis kunden er over 60 år, ta betalt:
16.0i helgene10.0på hverdager
- Hvis kunden er under 18 år, ta betalt:
- Returner billettprisen fra funksjonen.
Eksempel
calculateTicketPrice(16, true) → 12.0
calculateTicketPrice(30, false) → 15.0
calculateTicketPrice(70, true) → 16.0
Løsning
Takk for tilbakemeldingene dine!
single