Utmaning: Else-sats
else-satsen är ett avgörande element för att styra programflödet. Den kompletterar if-satsen genom att låta ett program vidta olika åtgärder beroende på om ett givet villkor är true eller false. I huvudsak möjliggör det för programmet att välja mellan två alternativa vägar.
else.h
12345678if (condition) { // Code to be executed if the condition is true } else { // Code to be executed if the condition is false }
Om villkoret är false hoppas koden över i det första blocket (det som följer efter if), och koden i det andra blocket (det som följer efter else) körs.
Vid körning verkar det fungera som förväntat. Eftersom variabeln x är mindre än 10, anger utdata korrekt: X is not greater than 10.
main.cpp
12345678910111213#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } std::cout << "X is not greater than 10" << std::endl; }
Försök att ändra värdet på variabeln x till ett tal större än 10 och kör sedan den angivna kodsnutten igen. Som du kan se finns det två olika meddelanden: ett som indikerar att X is greater than 10, och ett annat som anger att X is not greater than 10.
Det viktiga att förstå är att den andra std::cout-satsen inte är en del av if-blocket, utan alltid kommer att köras ovillkorligen efter if-blocket, vilket resulterar i att båda meddelandena skrivs ut. Naturligtvis måste detta åtgärdas och problemet kan lösas genom att använda nyckelordet else.
main.cpp
123456789101112131415#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } else { std::cout << "X is not greater than 10" << std::endl; } }
Nu fungerar allt som förväntat och endast en av två instruktioner kommer att utföras beroende på värdet av x.
else-nyckelordet kan följas av valfritt uttryck, inklusive ett annat if-block, och denna kedja kan utökas vid behov. Det är dock viktigt att inte överanvända denna konstruktion eftersom det kan göra det svårt att förstå programmets flöde.
Swipe to start coding
Du utvecklar en fraktkalkylator som bestämmer leveranskostnaden baserat på vikten av ett paket.
- Skapa en variabel
calculateShippingCosti funktionencostför att lagra fraktpriset. - Använd villkorssatser för att bestämma kostnaden:
- Om
weightKgär mindre än eller lika med 2, sätt kostnaden till 5.0. - Om
weightKgär mindre än eller lika med 5, sätt kostnaden till 10.0. - Annars, sätt kostnaden till 20.0.
- Om
- Returnera
costfrån funktionen.
Lösning
solution.cpp
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 7.69
Utmaning: Else-sats
Svep för att visa menyn
else-satsen är ett avgörande element för att styra programflödet. Den kompletterar if-satsen genom att låta ett program vidta olika åtgärder beroende på om ett givet villkor är true eller false. I huvudsak möjliggör det för programmet att välja mellan två alternativa vägar.
else.h
12345678if (condition) { // Code to be executed if the condition is true } else { // Code to be executed if the condition is false }
Om villkoret är false hoppas koden över i det första blocket (det som följer efter if), och koden i det andra blocket (det som följer efter else) körs.
Vid körning verkar det fungera som förväntat. Eftersom variabeln x är mindre än 10, anger utdata korrekt: X is not greater than 10.
main.cpp
12345678910111213#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } std::cout << "X is not greater than 10" << std::endl; }
Försök att ändra värdet på variabeln x till ett tal större än 10 och kör sedan den angivna kodsnutten igen. Som du kan se finns det två olika meddelanden: ett som indikerar att X is greater than 10, och ett annat som anger att X is not greater than 10.
Det viktiga att förstå är att den andra std::cout-satsen inte är en del av if-blocket, utan alltid kommer att köras ovillkorligen efter if-blocket, vilket resulterar i att båda meddelandena skrivs ut. Naturligtvis måste detta åtgärdas och problemet kan lösas genom att använda nyckelordet else.
main.cpp
123456789101112131415#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } else { std::cout << "X is not greater than 10" << std::endl; } }
Nu fungerar allt som förväntat och endast en av två instruktioner kommer att utföras beroende på värdet av x.
else-nyckelordet kan följas av valfritt uttryck, inklusive ett annat if-block, och denna kedja kan utökas vid behov. Det är dock viktigt att inte överanvända denna konstruktion eftersom det kan göra det svårt att förstå programmets flöde.
Swipe to start coding
Du utvecklar en fraktkalkylator som bestämmer leveranskostnaden baserat på vikten av ett paket.
- Skapa en variabel
calculateShippingCosti funktionencostför att lagra fraktpriset. - Använd villkorssatser för att bestämma kostnaden:
- Om
weightKgär mindre än eller lika med 2, sätt kostnaden till 5.0. - Om
weightKgär mindre än eller lika med 5, sätt kostnaden till 10.0. - Annars, sätt kostnaden till 20.0.
- Om
- Returnera
costfrån funktionen.
Lösning
solution.cpp
Tack för dina kommentarer!
single