Sløjfer (bræk og returner, fortsæt, etiketter) - 1

"Hej, Amigo!"

"I dag vil jeg fortælle dig om nogle ting, der er praktiske, når du arbejder med loops."

"Den første er nøgleordet break . Hvis du bruger denne kommando i brødteksten af ​​en loop, vil loopen afsluttes med det samme, når kommandoen udføres. Her er et eksempel:"

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

"Kan pause kun bruges i en løkke?"

"Ja. break-sætningen kan kun bruges i en løkke. Når en break-sætning udføres, afsluttes løkken med det samme."

"Ok, forstået."

"Fantastisk. Nu er den anden ting, jeg vil dele, nøgleordet fortsæt. Det kan også kun bruges i en løkke. Når denne kommando udføres, begynder en ny iteration af løkken med det samme. Med andre ord, enhver resterende kode i løkkens krop springes simpelthen over."

"Her er et eksempel:"

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

"Så, når først programmet når en fortsæt-kommando i en løkke, stopper det med at udføre koden i løkken?"

"Nej. Se, vi har en loop, når vi udfører den samme kode flere gange. I eksemplet ovenfor har vi en loop fra 0 til 9, dvs. løkkens krop vil blive eksekveret 10 gange. Ikke?"

"Ja."

"Én passage gennem løkkens krop kaldes en iteration. Vores løkke består af 10 iterationer - løkkens krop vil blive udført ti gange."

"Ja, det er klart."

" Fortsæt- kommandoen afslutter den aktuelle iteration for tidligt, dvs. enhver resterende kode inde i løkken springes over, og en ny iteration begynder."

"Her er et andet eksempel:"

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

"I dette eksempel viser vi en strengrepræsentation af alle objekterne på listen. Men vi springer alle objekter over, der er null."

"OK, forstår det. Jeg kan se, hvor praktisk det her er."

"Jep. Jeg vil også gerne fortælle dig om etiketter. De bruges sjældent i Java, fordi de ofte krænker skønheden i et programs logik. Men du kan støde på dem i koden på et tidspunkt. Så jeg vil hellere fortælle dig om dem, end du har hørt om dem på legepladsen."

"Det var engang tilladt at springe fra en hvilken som helst linje til en hvilken som helst linje i kode. Vi gjorde dette ved at bruge etiketter og goto-sætningen. Sådan ser det ud:"

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

"I dette eksempel, efter at goto label- kommandoen er udført, hopper programmet til linjen mærket label .

"Senere blev alle kloge og besluttede ikke at bruge goto -erklæringen. Java understøtter ikke goto, men goto er et reserveret ord. Ikke en big deal..."

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

"Der er ingen goto-erklæring, men der er etiketter!"

"Hvordan kan det være?"

"I Java kan etiketter bruges sammen med kommandoerne fortsæt og bryd. De bruges, når du har mange indlejrede løkker."

"Antag for eksempel, at du har 5 indlejrede løkker, og når en betingelse er opfyldt, vil du gerne ud af tre af dem, men ikke dem alle. Etiketter er en elegant måde at gø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 eksempel, når break-sætningen udføres, forlader vi ikke løkken med variabel k, men løkken mærket label2 - dvs. vi afslutter straks de to løkker med k og j."

"Hvor ofte bruges det?"

"For at være ærlig, ikke ofte, men man ved aldrig. Måske vil du se det engang. Det er syntaks fundamentals - du skal vide alt dette!"

"OK. Tak, Bilaabo."