For-løkke
En væsentlig ulempe ved while-løkken er, at man ikke kan angive et præcist antal iterationer og fuldt ud kontrollere løkkens udførelse. Derfor findes for-løkken, som giver alle nødvendige værktøjer til korrekt løkkekontrol og ofte anvendes ved arbejde med arrays og samlinger.
for-løkke
for-løkken er en kontrolstruktureret sætning, der muliggør gentagen udførelse af en kodeblok et angivet antal gange. Den anvendes typisk, når det præcise antal iterationer er kendt, eller ved gennemløb af en samling eller et array.
Syntaksen for for-løkke i Java er som følger:
Main.java
123for (initialization; condition; update) { // code to be executed }
Hvis vi går trin for trin, initialiserer vi først en variabel i et særligt afsnit til dette (vi gjorde det samme for while-løkken, blot udenfor løkken). Derefter angiver vi betingelsen for, hvornår løkken skal køre (for eksempel, så længe variablen er mindre end 10). Herefter anvender vi en inkrement eller dekrement. Nedenfor ses et flowchart og en forklaring af funktionen for hver af løkkens blokke:
Her er en opdeling af hver del af for-løkken:
- Initialisering: dette er den indledende opsætning, der kun udføres én gang i starten af løkken. Typisk deklarerer og initialiserer du en løkkekontrolvariabel her. For eksempel,
int i = 0; - Betingelse: dette er betingelsen, der kontrolleres før hver iteration. Hvis betingelsen er sand, udføres løkkens krop. Hvis betingelsen er falsk, afsluttes løkken. For eksempel,
i < 10; - Inkrement/dekrement-udtryk: dette er koden, der udføres efter hver iteration. Typisk opdaterer du løkkekontrolvariablen her. For eksempel,
i++(som svarer tili = i + 1); - Kode inde i løkken: dette er kodeblokken, der udføres for hver iteration af løkken. Du kan indsætte enhver gyldig Java-kode i løkkens krop.
Her er et eksempel, der demonstrerer brugen af en for-løkke:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("Iteration: " + i); } } }
I dette eksempel vil løkken blive udført 10 gange. Den starter med, at i initialiseres til 0, kontrollerer om i er mindre end 10, udfører løkkens krop og opdaterer derefter i ved at øge den med 1. Denne proces gentages, indtil betingelsen bliver falsk.
Det er værd at bemærke, at vi i denne løkke kan bruge den variabel, vi har oprettet. I vores tilfælde udskriver vi variablen i for at vise iterationsnummeret på skærmen.
Dette er meget nyttigt, især når vi har brug for, at vores variabel i indgår i koden.
Lad os se på et andet eksempel, hvor vi kun skal vise lige tal i intervallet fra 1 til 30.
For at afgøre, om et tal er lige eller ej, vil vi bruge % operatoren. % operatoren i Java bruges til at få resten af en division. Den hjælper med at kontrollere, om et tal går op i et andet uden rest, hvilket er nyttigt til at afgøre, om et tal er lige.
main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 30; i++) { if (i % 2 == 0) { // Check if `i` is even System.out.println(i); } } } }
Fint, i koden ovenfor brugte vi variablen i, når vi kontrollerede betingelsen. Med andre ord repræsenterer i de tal, vi overvejer. Dernæst kontrollerer vi, om tallet i er lige ved at bruge modulo-operatoren (%). Hvis resten ved division med 2 er nul, så er tallet lige, hvilket betyder, at det kan deles med 2 uden rest.
Lad os forestille os at dividere 3 med 2. Resten af divisionen er 1. Ved brug af %-operatoren giver 3 % 2 resten, som er 1. Så i udtrykket i % 2 == 0 er resultatet falsk, fordi resten ikke er 0, hvilket indikerer, at 3 er et ulige tal.
Bemærk også, hvordan vi sætter betingelsen for i. Algoritmen for vores handlinger forbliver den samme som før, men i løkkebetingelsen begrænsede vi i til en værdi på 30, som angivet i opgaven.
1. Hvor mange iterationer vil der være?
2. Hvor mange gange vil i blive vist
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 2.7
For-løkke
Stryg for at vise menuen
En væsentlig ulempe ved while-løkken er, at man ikke kan angive et præcist antal iterationer og fuldt ud kontrollere løkkens udførelse. Derfor findes for-løkken, som giver alle nødvendige værktøjer til korrekt løkkekontrol og ofte anvendes ved arbejde med arrays og samlinger.
for-løkke
for-løkken er en kontrolstruktureret sætning, der muliggør gentagen udførelse af en kodeblok et angivet antal gange. Den anvendes typisk, når det præcise antal iterationer er kendt, eller ved gennemløb af en samling eller et array.
Syntaksen for for-løkke i Java er som følger:
Main.java
123for (initialization; condition; update) { // code to be executed }
Hvis vi går trin for trin, initialiserer vi først en variabel i et særligt afsnit til dette (vi gjorde det samme for while-løkken, blot udenfor løkken). Derefter angiver vi betingelsen for, hvornår løkken skal køre (for eksempel, så længe variablen er mindre end 10). Herefter anvender vi en inkrement eller dekrement. Nedenfor ses et flowchart og en forklaring af funktionen for hver af løkkens blokke:
Her er en opdeling af hver del af for-løkken:
- Initialisering: dette er den indledende opsætning, der kun udføres én gang i starten af løkken. Typisk deklarerer og initialiserer du en løkkekontrolvariabel her. For eksempel,
int i = 0; - Betingelse: dette er betingelsen, der kontrolleres før hver iteration. Hvis betingelsen er sand, udføres løkkens krop. Hvis betingelsen er falsk, afsluttes løkken. For eksempel,
i < 10; - Inkrement/dekrement-udtryk: dette er koden, der udføres efter hver iteration. Typisk opdaterer du løkkekontrolvariablen her. For eksempel,
i++(som svarer tili = i + 1); - Kode inde i løkken: dette er kodeblokken, der udføres for hver iteration af løkken. Du kan indsætte enhver gyldig Java-kode i løkkens krop.
Her er et eksempel, der demonstrerer brugen af en for-løkke:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("Iteration: " + i); } } }
I dette eksempel vil løkken blive udført 10 gange. Den starter med, at i initialiseres til 0, kontrollerer om i er mindre end 10, udfører løkkens krop og opdaterer derefter i ved at øge den med 1. Denne proces gentages, indtil betingelsen bliver falsk.
Det er værd at bemærke, at vi i denne løkke kan bruge den variabel, vi har oprettet. I vores tilfælde udskriver vi variablen i for at vise iterationsnummeret på skærmen.
Dette er meget nyttigt, især når vi har brug for, at vores variabel i indgår i koden.
Lad os se på et andet eksempel, hvor vi kun skal vise lige tal i intervallet fra 1 til 30.
For at afgøre, om et tal er lige eller ej, vil vi bruge % operatoren. % operatoren i Java bruges til at få resten af en division. Den hjælper med at kontrollere, om et tal går op i et andet uden rest, hvilket er nyttigt til at afgøre, om et tal er lige.
main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 30; i++) { if (i % 2 == 0) { // Check if `i` is even System.out.println(i); } } } }
Fint, i koden ovenfor brugte vi variablen i, når vi kontrollerede betingelsen. Med andre ord repræsenterer i de tal, vi overvejer. Dernæst kontrollerer vi, om tallet i er lige ved at bruge modulo-operatoren (%). Hvis resten ved division med 2 er nul, så er tallet lige, hvilket betyder, at det kan deles med 2 uden rest.
Lad os forestille os at dividere 3 med 2. Resten af divisionen er 1. Ved brug af %-operatoren giver 3 % 2 resten, som er 1. Så i udtrykket i % 2 == 0 er resultatet falsk, fordi resten ikke er 0, hvilket indikerer, at 3 er et ulige tal.
Bemærk også, hvordan vi sætter betingelsen for i. Algoritmen for vores handlinger forbliver den samme som før, men i løkkebetingelsen begrænsede vi i til en værdi på 30, som angivet i opgaven.
1. Hvor mange iterationer vil der være?
2. Hvor mange gange vil i blive vist
Tak for dine kommentarer!