Indholdsfortegnelse:
Video: C - Flow Control 2025
En del af C ++ for Dummies Cheat Sheet
Følgende C ++ strukturer styrer strømmen af kontrol gennem programmet. Hvis du er en erfaren programmør, vil funktionen af disse strukturer være kendt fra andre sprog.
IF
Følgende kommando evaluerer booleanExpression. Hvis det vurderes til sandt, går kontrollen videre til udtryk1. Hvis ikke, går kontrollen til de valgfrie udtryk2.
hvis (booleanExpression) {expressions1;} [else {expressions2;}}
WHILE
Følgende kommando evaluerer booleanExpression. Hvis dette vurderes til sandt, så styres passet til udtryk. I slutningen af blokken går kontrol tilbage til booleanExpression og gentager processen.
mens (booleanExpression) {expressions;}
DO … WHILE
Følgende kommando udfører udtryk. Det vurderer derefter booleskexpression. Hvis dette vurderes til sand, vender kontrol tilbage til toppen af sløjfen og gentager processen.
gør {udtryk;} mens (booleanExpression);
FOR
Følgende kommando udfører initCommand, som kan være et udtryk eller en variabel deklaration. Det vurderer derefter boolExpression. Hvis dette vurderes til sandt, så styres passet til udtryk1. Hvis boolExpression er falsk, går kontrollen til den første sætning efter den lukkede bøjle af forløbet. Når udtryk er fuldført, overgår kontrollen til udtrykket indeholdt i loopExpression, inden du vender tilbage til boolExpression for at gentage processen. Hvis initCommand erklærer en ny variabel, går den ud af rækkefølge, så snart kontrollen går uden for sløjfen.
til (initCommand; boolExpression; loopExpression) {expressions;}
TIL (EACH)
2011-standarden introducerer en anden form for loop, der ofte kaldes "for hver" af dens lighed med foreach fundet på nogle andre sprog. I denne formular indtager variablen, der er angivet i erklæring, værdien af det første medlem af listen og udfører ekspressionsblokken. Når den erklærede variabel er færdig, tager den anden værdi af listen og udfører udtryk igen. Denne proces gentages for hver værdi i listen.
til (erklæring: liste) {expressions;}
SWITCH
Følgende kommando evaluerer integerExpression og sammenligner resultatet med hvert af de nævnte tilfælde. Hvis værdien er fundet lig med en af de konstante integralværdier, passerer val1, val2 osv. Kontrollen til det tilsvarende sæt udtryk og fortsætter, indtil kontrollen møder en pause.Hvis udtryk ikke svarer til nogen af værdierne, passerer kontrollen til udtrykN som standard.
switch (integerExpression) {tilfælde val1: udtryk1; pause; tilfælde val2: udtryk2; pause; [default: expressionsN;]}
BREAK, CONTINUE, GOTO
En fortsættelse passerer kontrol til slutningen af den lukkede bøjle af nogen af looping kontrollerne. Dette får sløjfen til at fortsætte med den næste iteration. For eksempel behandler følgende sløjfe primære tal mellem 1 og 20:
for (int i = 0; i <20; i ++) {// hvis tallet ikke er primært … hvis (! ErPrime (i)) {/ / … spring over til den næste værdi af jeg fortsætter;} // fortsæt med behandling}
En pause sender kontrol til den første sætning efter den lukkede bøjle af en af loopningskommandoerne. Dette medfører, at udførelsen straks går ud af sløjfen. F.eks. Læser følgende tegn til og slutningen af filen opstår:
mens (true) {// læser en linje fra input objekt input >> linje; // hvis en fejl eller enden af filen opstår … hvis (cin. eof () || cin. fail ()) {// … og derefter afslutte sløjfepausen;} // behandl linjen}
A goto Etiketten sender kontrol til den medfølgende etiket. Pauseeksemplet ovenfor kunne have været skrevet som følger:
mens (true) {// læse en linje fra input objekt input >> linje; // hvis en fejl eller enden af filen opstår … hvis (cin. eof () || cin. fail ()) {// … og derefter afslutte loop goto exitLabel;} // behandle linjen} exitLabel: // kontrol fortsætter her