Løkker (bryt og returner, fortsett, etiketter) - 1

"Hei, Amigo!"

"I dag skal jeg fortelle deg om noen ting som er praktiske når du jobber med løkker."

"Den første er nøkkelordet break . Hvis du bruker denne kommandoen i brødteksten i en loop, vil loopen avsluttes umiddelbart når kommandoen utføres. Her er et eksempel:"

Eksempel Produksjon:
for (int i = 0; i < 10; i++)
{
System.out.println(i);
if (i > 5)
break;
}
0
1
2
3
4
5

"Kan pause kun brukes i en loop?"

"Ja. break-setningen kan bare brukes i en loop. Når en break-setning utføres, avsluttes loopen umiddelbart."

"Ok, skjønner."

"Flott. Nå er den andre tingen jeg vil dele nøkkelordet fortsett. Det kan også bare brukes i en loop. Når denne kommandoen utføres, begynner en ny iterasjon av loopen umiddelbart. Med andre ord, eventuell gjenværende kode i hoveddelen av løkken hoppes ganske enkelt over."

"Her er et eksempel:"

Eksempel Produksjon:
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
continue;
System.out.println(i);
}
1
3
5
7
9

"Så, når programmet når en fortsett-kommando i en loop, slutter det å utføre koden i loopen?"

"Nei. Se, vi har en løkke når vi kjører den samme koden flere ganger. I eksemplet ovenfor har vi en løkke fra 0 til 9, dvs. at løkkens kropp vil bli utført 10 ganger. Ikke sant?"

"Ja."

"En pass gjennom løkkens kropp kalles en iterasjon. Vår løkke består av 10 iterasjoner - løkkens kropp vil bli utført ti ganger."

— Ja, det er klart.

" Fortsett- kommandoen avslutter gjeldende iterasjon for tidlig, dvs. gjenværende kode i løkken hoppes over og en ny iterasjon begynner."

"Her er et annet eksempel:"

Eksempel
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o == null) continue;
System.out.println(o.toString());
}

"I dette eksemplet viser vi en strengrepresentasjon av alle objektene i listen. Men vi hopper over alle objekter som er null."

"OK, skjønner det. Jeg kan se hvor praktisk dette er."

"Jepp. Jeg vil også fortelle deg om etiketter. De brukes sjelden i Java, fordi de ofte bryter med skjønnheten i et programs logikk. Men du kan støte på dem i koden på et tidspunkt. Så jeg vil heller fortelle deg om dem enn du har hørt om dem på lekeplassen."

"Det var en gang tillatt å hoppe fra hvilken som helst linje til hvilken som helst linje i koden. Vi gjorde dette ved å bruke etiketter og goto-setningen. Slik ser det ut:"

Fryktelig kode med etiketter
System.out.println("Make cookies,");
label: System.out.println("not");
System.out.println("war");
goto label;

"I dette eksemplet, etter at goto label- kommandoen er utført, hopper programmet til linjen merket label .

"Senere ble alle klokere og bestemte seg for ikke å bruke goto -setningen. Java støtter ikke goto, men goto er et reservert ord. Ikke så farlig..."

"Så, ingen goto og ingen etiketter i Java?"

"Det er ingen goto-erklæring, men det er etiketter!"

"Hvordan kan det være?"

"I Java kan etiketter brukes med kommandoene fortsett og bryte. De brukes når du har mange nestede løkker."

"Anta for eksempel at du har 5 nestede løkker og når en eller annen betingelse er oppfylt, vil du komme ut av tre av dem, men ikke alle. Etiketter er en elegant måte å gjøre dette på:"

Eksempel
label1: for (int i = 0; i < 10; i++)
 label2: for (int j = 0; j < 10; j++)
  label3: for (int k =0; k < 10; k++)
   if (i == j && j == k)
    break label2;

"I dette eksempelet, når break-setningen utføres, går vi ikke ut av løkken med variabel k, men fra løkken merket label2 - dvs. vi går umiddelbart ut av de to løkkene med k og j."

"Hvor ofte brukes det?"

"For å være ærlig, ikke ofte, men du vet aldri. Kanskje du vil se det en gang. Dette er grunnleggende syntaks – du må vite alt dette!"

"OK. Takk, Bilaabo."