Upprepningar: for

For loop används för att exekvera en uppsättning satser upprepade gånger tills ett visst villkor returnerar falskt.

Syntaxen är som följande:

for (initiering; villkor; förändring) {

Kodsatser att exekvera;

}

Så här kan delarna i for-loopen uppfattas:

  • Initiering – ett värde som anger vid vilket värde som loopen börjar räkna ifrån. Detta är en valfri del av loopen eftersom variablerna kan initieras före loopen. Detta körs endast en gång när loopen startar.
  • Villkor – avgör vilket logiskt villkor som ska vara uppfyllt för att exekvera loopen. Detta tillstånd avgör tills när loopen ska fortsätta att upprepas. Loopen fortsätter att upprepas tills villkoret blir falskt.
  • Förändring – säger hur initialvärdet ska förändras, exempelvis, öka eller minska. I den här delen av loop-deklarationen kan du ange ökningen eller minskningen av loopräknaren. Detta är för att modifiera loopräknarens värde så att tillståndet vid en punkt blir falskt och loopen slutar.

Exempel på ett program som ska skriva ut på skärmen: Variabel i har värde: 1 och kodsatsen upprepas tio gånger.

class ForLoopExempel {
    public static void main(String args[]){
         for(int i=1; i <= 1; i++){
              System.out.println("Variabel i har värde: " + i);
         }
    }
}

Returnerar:

Variabel i har värde: 1
Variabel i har värde: 2
. . . . .  så fortsätter
Variabel i har värde: 9
Variabel i har värde: 10

Vill man istället börjar på 10 och slutar på 1:

class ForLoopExempel {
    public static void main(String args[]){
         for(int i = 10; i >= 1; i--){
              System.out.println("Variabel i har värde: " + i);
         }
    }
}

Returnerar:

Variabel i har värde: 10
Variabel i har värde: 9
. . . . så fortsätter
Variabel i har värde: 2
Variabel i har värde: 1

En for-loop inuti en annan for-loop kallas nästlade för-loop och så kan for-loop tillsammans med arrayer bli mer utvecklad. Här tas upp grunder av for-loop.

Exempel

  1. Skriv ett program som returnerar nummer 1 till 10 separerade med kommatecknet. Det följer inte något kommatecknet till nummer 10
  2. Skriv ett program som visar en omvandlingstabell över mänskliga år (från 1 till 10) till hundår. Tabellen har två kolumner en till ”Human” och en till ”Dog”
    Obs: Beräkningen du behöver är hundår = människoår * 7.
  3. Skriv ett program som returnerar två kolumner med nummer 1 till 10 och deras kvadrater (upphöjt till 2). Lägg till en pil på varje rad som separerar kolumnerna.
  4. Skriv ett program som simulerar rullningen av en sexsidig tärning fem gånger. Varje gång tärningen rullas ska programmet visa kast ordning och siffran som tärningen visar.
  5. Nu ska en spelare få chansen att ange antal kast så att den sexsidig tärning rullar lika antal som spelaren anger.
public class ForLoopDemo1 {

    public static void main(String[] args) {
        for(int i = 1; i < 11; i++) {
            if(i < 10) {
                System.out.print(i + ", ");
            } else {
                System.out.print(i);
            }
        }
    }
}

Returnerar:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10

public class ForLoopDemo2 {

    public static void main(String[] args) {
        System.out.println("Human" + "\t" + "Dog");
        for(int human = 1; human <= 10; human++) {
            System.out.println(human + "\t" + (human*7));
        }
    }
}

Returnerar:

Human  Dog
1              7
2             14
3             21
4             28
5             35
6             42
7             49
8             56
9             63
10           70

public class ForLoopDemo3 {

    public static void main(String[] args) {
        for(int num = 1; num <= 10; num++){
              System.out.println(num + "\t-->\t" + (num * num));
        }
    }
}

Returnerar:

1      -->      1
2      -->     4
3      -->     9
4      -->     16
5      -->     25
6      -->     36
7       -->    49
8      -->     64
9      -->     81
10    -->     100

import java.util.*;
public class ForLoopDemo4 {

    public static void main(String[] args) {
        Random randomNum = new Random();
        for(int count = 1; count <= 5; count++){
            int dice = randomNum.nextInt(6) + 1;
            System.out.println("Kast " + count + ":  " + dice);
        }
    }
}

Returnerar olika varje gång, till exempel:

Kast 1: 5
Kast 2: 3
Kast 3: 4
Kast 4: 6
Kast 5: 6

import java.util.*;
public class ForLoopDemo5 {
    public static void main(String[] args) {
        Random randomNum = new Random();
        Scanner antal = new Scanner(System.in);
        System.out.println("Hur många gånger vill du kasta tärningen? ");
        int howMany = antal.nextInt();
        for(int count = 1; count <= howMany; count++){
          int dice = randomNum.nextInt(6) + 1;
          System.out.println(dice + " ");
        }
    }
}

Returnerar enligt antal task, till exempel:

Hur många gånger vill du kasta tärningen? 2
2
6