Upprepningar: while

I programmering vill man återanvända kod ett antal gånger och då passar bra att upprepa koder i kombinationen med villkorssatser. Det innebär att kod upprepas så länge villkorssatsen är sant eller true. Upprepningar av kod är känd på engelska som loops.

While loop

While loopen upprepar kod så länge ett villkor är uppfyllt. Man kan också säga att man inte vet antal gånger som kodsatser ska upprepas och det passar bra att ha villkorssats i programmet. Det kan hända att villkor uppfylls alla gånger så att kodsatser upprepas oändligt! Man ska vara noggrann och använda alltid begränsningar exempelvis att något upprepas 5 gånger.

Den enklaste syntaxen är så här:

while (logiskt uttryck, det vill säga villkorssats) {

Kodsatser som upprepas ett antal gånger;

}

Exempel

import java.util.Scanner;

public class EnkelUpprepning {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Ange antal gånger Java ska hälsa på dig: ");

int a = input.nextInt(); int i = 0;

while (i < a){

System.out.println ("Hej på dig!"); i++;

}

}

}

Utdata

Ange antal gånger Java ska hälsa dig: 5
Hej på dig!
Hej på dig!
Hej på dig!
Hej på dig!
Hej på dig!

public class EnkelAddition {

public static void main(String[] args) {

int a = 1, sum = 0;
while (a <= 5){

System.out.println ("Additionen " + sum + " + " + a + " = " + (sum + a));

sum++;

a++;

}

}

}

Utdata

Summan 0 + 1 = 1

Summan 1 + 2 = 3

Summan 2 + 3 = 5

Summan 3 + 4 = 7

Summan 4 + 5 = 9

import java.util.Scanner;

public class AdditionTest {

public static void main(String[] args) {

int tal1 = (int)(Math.random() * 10);
int tal2 = (int)(Math.random() * 10);
Scanner input = new Scanner(System.in);
System.out.print("Vad blir summan " + tal1 + " + " + tal2 + " ? ");
int svar = input.nextInt();
while (tal1 + tal2 != svar){

System.out.print("Fel svar. Försök igen. " + "Vad blir summan " + tal1 + " + " + tal2 + " ? ");
svar = input.nextInt();

}
System.out.println("Rätt!");

}

}

Utdata

Vad blir summan 6 + 4 ? 5
Fel svar. Försök igen. Vad blir summan av 6 + 4 ? 6
Fel svar. Försök igen. Vad blir summan av 6 + 4 ? 9
Fel svar. Försök igen. Vad blir summan av 6 + 4 ? 10
Rätt!

import java.util.Scanner;

public class MagiskaTalet {
public static void main(String[] args) {
// Generera slumpmässigt tal att gissa
int tal = (int)(Math.random() * 101);
Scanner input = new Scanner(System.in);
System.out.println("Gissa det magiska talet mellan 0 och 100");
int gissa = -1;
while (gissa != tal){
// Be användaren matta in en gissning
System.out.print("Ange det magiska talet: ");
gissa = input.nextInt();
if (gissa == tal)
System.out.println("Ja, det magiska talet är " + tal + "!");
else if (gissa > tal)
System.out.println("Ditt tal är större än det magiska talet");
else
System.out.println("Ditt tal är mindre än det magiska talet");
}
}
}

utdata

Gissa det magiska talet mellan 0 och 100
Ange det magiska talet: 35
Ditt tal är större än det magiska talet
Ange det magiska talet: 12
Ditt tal är större än det magiska talet
Ange det magiska talet: 8
Ditt tal är mindre än det magiska talet
Ange det magiska talet: 9
Ja, det magiska talet är 9!

 

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class KontrollTal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Be användaren matta in det första talet
System.out.print(
"Ange ett heltal (programmet avbryts när du anger talet 0): ");
int tal = input.nextInt();
// Läs av alla tal tills användaren mattar in 0
int sum = 0;
while (tal != 0){
sum += tal;
System.out.print(
"Ange ett heltal (programmet avbryts när du anger talet 0): ");
tal = input.nextInt();
}
System.out.println("Summan av givna tal är: " + sum);
}
}

utdata

Ange ett heltal (programmet avbryts när du anger talet 0): 10
Ange ett heltal (programmet avbryts när du anger talet 0): 12
Ange ett heltal (programmet avbryts när du anger talet 0): 34
Ange ett heltal (programmet avbryts när du anger talet 0): 0
Summan av givna tal är: 56