For mer info: for, while og do while.
Løkker (loops) brukes for å kjøre lik kode flere ganger. Du er kanskje allerede kjent med løkker allerede fra python, men i C++ implementeres de litt anderledes.
Det er tre forskjellige løkker man kan bruke: for, while og do while. Disse løkkene kan brukes om hverandre, men ofte er en av dem mer intuitiv å bruke enn de andre.
En for løkke i C++ skrives slik:
for (type type_name = value; condition; iterator)
{
// code
}
Som du ser gjør for-løkken tre ting i tilleg til koden innenfor krøllparantesene.
I eksempelet under ser du et eksempel på hva det kan bety i praksis.
vector my_vector = {"Hello", "from", "the", "other", "side"};
for (int i = 0; i < my_vector.size(); i++)
{
cout << my_vector[i] << " ";
}
Dette printer ut i terminalen "Hello from the other side".
For-løkken over tilsvarer for i in range(0, len(my_list)):
i python.
Det er også verdt å merke at ettersom koden inni for-løkken bare er på en linje,
kunne krøllparantesene blitt fjernet i dette eksempelet.
I python er det vanlig å iterere gjennom lister ved hjelp av nøkkelordet in (faktisk lager range funksjonen bare en liste som for-løkken itererer gjennom). I C++ kan man få til det samme med nøkkelordet auto:
vector my_vector = {"Hello", "from", "the", "other", "side"};
for (auto element : my_vector) cout << element << " ";
Her vil koden, som i forrige eksempelet printe ut "Hello from the other side".
While-løkken fungerer på mange måter som i python. Den kjører koden så lenge det som er inni betingelsen er sant. I eksempelet under avslutten løkken når brukeren skriver y for å avslutte løkken.
char response;
while (response != 'y')
{
// Do stuff
cout << "Do you want to quit? (y/n): ";
cin >> response;
}
Do while-løkken er godt egnet hvis du ønsker at koden innenfor krøllparantesene alltid kjøres hvertfall en
gang,
eller hvis betingelsen avhenger av kalkuleringen.
I eksempelet under garanterer vi at hvertfall ett tilfeldig tall skrives ut (0) og betingelsen avhenger av
den "avanserte" kalkuleringen random_number = rand() % 10;
.
int random_number;
do
{
random_number = rand() % 10;
cout << random_number << endl;
} while (random_number > 0);