int i = 0;
int j = 0;
int k = 0;
Dette er tre uttalelser som kan skrives i en uttalelse, som:
int i = 0, j = 0, k = 0;
Det er en datatype; uttrykkene er atskilt med komma. En uttalelse avsluttes med en semikolon. Flere variabler er blitt erklært her i en uttalelse.
Vurder nå følgende trinnvise utsagn:
int i ++;
int j ++;
int K ++;
Disse tre uttalelsene kan erstattes av en uttalelse, som følger:
int i ++, J ++, K ++;
Her er det tre uttrykk i en uttalelse for en datatype.
Vurder også følgende tre betingede uttalelser:
Jeg < 10;
j < 10;
k < 10;
Disse tre uttalelsene kan erstattes av en uttalelse, som følger:
Jeg < 10 && j < 10 && k < 10;
Her har tre uttalelser blitt kombinert til ett uttrykk for en spesiell form. Disse uttrykkene er ikke atskilt med komma som i de ovennevnte tilfeller, men de er kombinert med det logiske og.
Denne artikkelen forklarer hvordan flere variabler kan erklæres og brukes, i en for-loop, med regelmessige korrespondanser. Veldig enkle eksempler brukes til illustrasjoner.
Artikkelinnhold
En dimensjonal for-loop
mens du er sløyfe
En stug-loop for å vise tall fra null til 9, er som i følgende program:
#inkludere
ved hjelp av navneområdet STD;
int main ()
int i = 0;
mens jeg < 10)
cout << i << endl;
i ++;
retur 0;
Den første linjen i programmet inkluderer iostream -biblioteket for cout -objektet. Neste linje i programmet er en uttalelse. Det sikrer at ethvert navn som brukes er fra C ++ standardbiblioteket med mindre annet er angitt.
I hovedfunksjonen () er det initialiseringsuttalelsen, av heltallet, i = 0. Så er det mens-sløyfen, som tar hensyn til initialiseringsuttalelsen. Mens-betingelsen er (jeg < 10), and as long as i is less than 10 (never equal to 10), the cout iostream object in the body of the while-loop displays the value of i. The next statement in the while-loop increments i (adds 1 to the value of i).
Utgangen er som følger, men vises vertikalt:
0 1 2 3 4 5 6 7 8 9
En dimensjonal for-loop
Koden i hovedfunksjonen () ovenfor, er gjengitt, i det følgende programmet, som en for-loop:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0; i < 10; i++)
cout << i << endl;
retur 0;
Utgangen er den samme som i ovennevnte tilfelle. Initialiseringsuttalelsen for ovennevnte kode er nå den første uttalelsen i parentesene til For-loop, etterfulgt av en semikolon. Mens-betingelsen for ovennevnte kode er nå den andre uttalelsen i parentesene til For-loop, etterfulgt av en semikolon. Økningserklæringen i kroppen til While-Loop, for forrige kode, er nå den tredje uttalelsen i parentesen til For-loop. Det blir ikke fulgt av en semikolon fordi det er den siste uttalelsen i parentesene. Den eneste uttalelsen i For-loop viser verdien av i.
To dimensjonal for-loop
Nestet mens du er sløyfe
Ovennevnte endimensjonale for-loop viser en kolonne, der hver celle har et tall, verdien av i. En stug-sløyfe, hekket i en annen mens-sløyfe, ville vise en tabell, der hver celle ville ha et tall (verdien av j på den posisjonen). Følgende program illustrerer dette:
#inkludere
ved hjelp av navneområdet STD;
int main ()
int i = 0;
mens jeg < 5)
int j = 0;
mens (j < 5)
cout << j << ";
J ++;
cout << endl;
i ++;
retur 0;
Utgangen er:
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
I -variabelen bestemmer radene. J -variabelen bestemmer kolonnene. Maksimumsverdiene for I og J er hver 4 i denne koden. Ingen verdi av jeg skrives ut. For hver verdi av j skrives verdien av j horisontalt. J økes for å skrive ut neste verdi horisontalt for hver linje.
Det er to initialiseringsuttalelser: en for jeg og en for j, begge initialisert til null. Initialiseringsuttalelsen for J er innenfor den ytre sløyfen. På denne måten reinitialiseres J for hver rad (hver horisontale linje). På denne måten kan J produsere tall fra 0 til 4 for hver rad. Verdien av jeg skrives aldri ut; det indikerer bare radnummeret. Jeg er økt utenfor og under den nestede sløyfen. Jeg er økt med det formålet med neste rad.
Nestet for loop
Følgende nestet for-loop produserer samme resultat (tabell) som ovennevnte nestet mens loop:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
cout << j << ";
cout << endl;
retur 0;
Hver for-loops parenteser har sin egen initialiseringsuttalelse, sin egen betingelseserklæring og sin egen økning i løpet av.
En mens-sløyfe
Tabellutgangen ovenfor kan produseres av en mens-sløyfe, med en initialiseringsuttalelse og en tilstandserklæring. Omfordeling av null til j og økning av I må imidlertid forekomme i en IF-konstruksjon. Følgende kode illustrerer dette:
#inkludere
ved hjelp av navneområdet STD;
int main ()
int i = 0, j = 0;
mens jeg < 5 && j <5)
cout << j << ";
J ++;
if (j == 5)
cout << endl;
j = 0;
i ++;
retur 0;
Utgangen er den samme tabellen som den ovenfor.
En for-loop
Tabellutgangen ovenfor kan produseres av en for-loop, med en initialiseringsuttalelse og en tilstandserklæring. Omfordeling av null til j og økning av I må imidlertid forekomme i en IF-konstruksjon. Følgende program illustrerer dette:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0, j = 0; i < 5 && j <5; j++)
cout << j << ";
if (j == 4)
cout << endl;
J = -1;
i ++;
retur 0;
Utgangen er den samme tabellen som den ovenfor. Men her, siden J økes på slutten av sløyfen, i parentesene, er IF-kondisjonen (J == 4), og J blir tildelt, -1 for hver rad.
Det som er romlig her er at to variabler er blitt erklært i en for-loop. Og så kan flere variabler erklæres i en for-loop.
Ledende diagonal adressering
I et firkantet bord er den ledende diagonalen diagonalen fra den øverste enden til den nederste høyre enden. Følgende program viser koordinatene til den ledende diagonalen i tabellen ovenfor:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0, j = 0; i < 5 && j <5; i++,j++)
cout << i << ',' << j << ";
cout << endl;
retur 0;
Utgangen er:
0,0 1,1 2,2 3,3 4,4
Legg merke til at i programmet er to variabler blitt erklært i parentesene til for-loopen; Tilstanden har de to variablene, relatert av det logiske og; og trinnserklæringen har de to variablene, hver økt ved å legge til en. Under denne tilstanden skriver den ene uttalelsen i kroppen til for-loop ut koordinatene til den ledende diagonalen.
Tredimensjonal for-loop
Det kan være tungvint å skrive ut alle verdiene til cellene i en kube. Følgende program skriver bare ut koordinatene til den ledende diagonalen til en kube:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0, j = 0, k = 0; i<5&&j<5&&k<5; i++,j++,k++)
cout << i << ',' << j << ',' << k << ";
cout << endl;
retur 0;
Utgangen er:
0,0,0 1,1,1 2,2,2 3,3,3 4,4,4
Legg merke til at initialiseringsuttalelsen har tre variabler; Tilstandsuttalelsen har de tre variablene, og trinnserklæringen har de tre variablene. Det er bare en uttalelse i kroppen til for-loop.
Mulig fordel
Tenk på en enkelt for-loop for å vise alle verdiene til cellene i en firkantet bord:
Å ha de to variablene i initialiseringsuttalelsen og i tilstanden gir ingen fordel i hastighet, sammenlignet med situasjonen der en sløyfe er nestet.
Imidlertid, hvis bare utvalgte verdier i tabellen skal nås, vil det å ha de to variablene, i initialiseringsuttalelsen, i tilstandsuttalelsen og i trinnserklæringen, gi en fordel i hastighet; i den forstand at alle verdiene ikke vil få tilgang til, før du eliminerer mange av dem. I det følgende programmet skrives hvert annet koordinatpar, i det ledende diagonalen,:
#inkludere
ved hjelp av navneområdet STD;
int main ()
for (int i = 0, j = 0; i < 10 && j <10; i+=2,j+=2)
cout << i << ',' << j << ";
cout << endl;
retur 0;
Utgangen er:
0,0 2,2 4,4 6,6 8,8
Det er fremdeles bare en uttalelse i for-loop. Å få fordel i hastighet, på denne måten, innebærer å inkludere ytterligere selektiv logikk i tilstandserklæringen og/eller i inkrementserklæringen. Initialiseringsuttrykkene i initialiseringsuttalelsen trenger kanskje ikke initialiseres til null.
I koden ovenfor er trinnserklæringen:
i+= 2, j+= 2
som betyr,
i = i+2, j = j+2;
Konklusjon
Ja, jeg kan erklære flere variabler i en for-loop. Og du kan også nå erklære flere variabler, i en for-loop, som følger: bare skille flere variabler i initialiseringsuttalelsen med komma. Ikke glem å avslutte den komplette initialiseringsuttalelsen med en semikolon. Hvis tilgangen til elementene i strukturen må være selektiv, kan det hende at disse variablene også må brukes, i tilstanden og/eller trinn-utsagnene, i parentesene til For-loop, muligens med noen ekstra logikk.