Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Vaktsetning | Avanserte Emner
C++ Betingede Setninger

bookVaktsetning

Etter hvert som applikasjoner blir mer komplekse, øker også potensialet for feil og bugs. For å motvirke dette har utviklere tatt i bruk ulike teknikker og praksiser for å sikre kodekvalitet. En slik teknikk som har fått økt oppmerksomhet de siste årene, er Clause Guard-teknikken.

Tenk deg en applikasjon som skal verifisere om en bruker oppfyller tre betingelser: er student, har premiumkonto og er tilkoblet. Kun dersom alle disse betingelsene er oppfylt, vil applikasjonen vise utdata: Requirements satisfied. Ellers skal det logges i konsollen hvilket spesifikt steg i initialiseringsprosessen som feiler.

Du kan oppnå ønsket resultat ved å bruke nestede if-setninger, men denne tilnærmingen kan gjøre koden vanskelig å forstå og vanskelig å endre dersom du må legge til nye betingelser. Se på kodeeksempelet.

without_guard_clause.cpp

without_guard_clause.cpp

copy
123456789101112131415161718192021
#include <iostream> int main() { bool isStudent = true; // Change it to false and see the output bool isPremium = true; bool isConnected = true; if (isStudent) { if (isPremium) { if (isConnected) { std::cout << "Requirements satisfied"; } else std::cout << "You are not connected\n"; } else std::cout << "You don't have premium\n"; } else std::cout << "You are not a student\n"; }

For å bruke guard clause-teknikken effektivt, er det viktig å huske at vi kan avslutte funksjonsutførelsen når som helst ved å bruke return-nøkkelordet. I denne tilnærmingen snur vi betingelsene våre, slik at hvis en bruker ikke er student, vises en melding umiddelbart og main-funksjonen avsluttes. Dette gjøres for å unngå nestede if-trær og unødvendig kjøring av kode når det ikke har noen hensikt.

with_guard_clause.cpp

with_guard_clause.cpp

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { bool isStudent = true; // Change them to false and see the output bool isPremium = true; bool isConnected = true; if (!isStudent) { std::cout << "You are not a student\n"; return 0; } if (!isPremium) { std::cout << "You don't have premium\n"; return 0; } if (!isConnected) { std::cout << "You are not connected\n"; return 0; } std::cout << "Requirements satisfied"; }

Guard Clause-teknikken er et kraftig verktøy i programvareutviklerens arsenal for å oppnå pålitelighet, fleksibilitet og sikkerhet i koden. Ved å implementere denne teknikken kan utviklere redusere antall feil, forbedre kodevedlikeholdbarhet og øke den generelle programvarekvaliteten.

question mark

Hva er hovedmålet med Guard Clause-teknikken?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you show me an example of the guard clause technique in code?

What are the main benefits of using guard clauses over nested if statements?

Are there any drawbacks or situations where guard clauses are not recommended?

Awesome!

Completion rate improved to 7.69

bookVaktsetning

Sveip for å vise menyen

Etter hvert som applikasjoner blir mer komplekse, øker også potensialet for feil og bugs. For å motvirke dette har utviklere tatt i bruk ulike teknikker og praksiser for å sikre kodekvalitet. En slik teknikk som har fått økt oppmerksomhet de siste årene, er Clause Guard-teknikken.

Tenk deg en applikasjon som skal verifisere om en bruker oppfyller tre betingelser: er student, har premiumkonto og er tilkoblet. Kun dersom alle disse betingelsene er oppfylt, vil applikasjonen vise utdata: Requirements satisfied. Ellers skal det logges i konsollen hvilket spesifikt steg i initialiseringsprosessen som feiler.

Du kan oppnå ønsket resultat ved å bruke nestede if-setninger, men denne tilnærmingen kan gjøre koden vanskelig å forstå og vanskelig å endre dersom du må legge til nye betingelser. Se på kodeeksempelet.

without_guard_clause.cpp

without_guard_clause.cpp

copy
123456789101112131415161718192021
#include <iostream> int main() { bool isStudent = true; // Change it to false and see the output bool isPremium = true; bool isConnected = true; if (isStudent) { if (isPremium) { if (isConnected) { std::cout << "Requirements satisfied"; } else std::cout << "You are not connected\n"; } else std::cout << "You don't have premium\n"; } else std::cout << "You are not a student\n"; }

For å bruke guard clause-teknikken effektivt, er det viktig å huske at vi kan avslutte funksjonsutførelsen når som helst ved å bruke return-nøkkelordet. I denne tilnærmingen snur vi betingelsene våre, slik at hvis en bruker ikke er student, vises en melding umiddelbart og main-funksjonen avsluttes. Dette gjøres for å unngå nestede if-trær og unødvendig kjøring av kode når det ikke har noen hensikt.

with_guard_clause.cpp

with_guard_clause.cpp

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { bool isStudent = true; // Change them to false and see the output bool isPremium = true; bool isConnected = true; if (!isStudent) { std::cout << "You are not a student\n"; return 0; } if (!isPremium) { std::cout << "You don't have premium\n"; return 0; } if (!isConnected) { std::cout << "You are not connected\n"; return 0; } std::cout << "Requirements satisfied"; }

Guard Clause-teknikken er et kraftig verktøy i programvareutviklerens arsenal for å oppnå pålitelighet, fleksibilitet og sikkerhet i koden. Ved å implementere denne teknikken kan utviklere redusere antall feil, forbedre kodevedlikeholdbarhet og øke den generelle programvarekvaliteten.

question mark

Hva er hovedmålet med Guard Clause-teknikken?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt