Nyckelord: Loopar
Loopar och slumptal
Skriv ett program som först genererar ett slumptal mellan 1 och 100. Programmet ska sedan be användaren att gissa talet. Om användaren gissar för högt, ska texten "För högt tal, försök igen!" skrivas ut. Om talet är för lågt ska programmet skriva ut "För lågt tal, försök igen". När användaren har gissat rätt tal ska programmet skriva ut "Rätt gissat. Du lyckades gissa rätt tal på försök: XX" och sedan stänga av programmet. Utgå från följande kod:
public class LooparUppgift6 {
public static void main(String[] args) {
// Skriv din kod här
}
}
Ledtråd
Skapa en evighetsloop för att fortsätta fråga användaren flera gånger om en ny input. Bryt evighetsloopen med kommandot break. Du behöver även skapa en variabel som håller koll på hur många gånger loopen har körts.
Behöver du en upprepning i hur man skapar en input eller hur man skapar ett slumptal så kan du läsa mer på avsnitten: Klassen Scanner i Java – Skicka inputs till programmet och Klassen Random – Generera ett slumptal i Java.
Lösning
import java.util.Scanner;
import java.util.Random;
public class LooparUppgift6 {
public static void main(String[] args) {
// Skapa ett scanner-objekt som kan ta emot input
Scanner input = new Scanner(System.in);
// Skapa ett slumptal mellan 1 och 100
Random random = new Random();
int slumptal = random.nextInt(100) + 1; // Genererar ett slumptal av typen int i intervallet 1 till 100
// Antal gissningar
int i = 1;
// Evighetsloop som kommer fortsätta fråga användaren till den gissar rätt tal
while(true) {
System.out.println("Ange ett tal:");
int guess = input.nextInt();
if(guess > slumptal){
System.out.println("För högt tal, försök igen!");
}else if(guess < slumptal){
System.out.println("För lågt tal, försök igen!");
}else{
System.out.println("Rätt gissat. Du lyckades gissa rätt tal på försök: " + i);
break; // Bryter evighetsloopen
}
// Öka i med 1 (i = i + 1)
i++;
}
}
}
Förklaring
Först skapar vi ett scanner- och ett random-objekt. Sedan skapar vi en evighetsloop som fortsätter att fråga användaren om input tills dess att användaren gissar rätt. Variabeln i håller räkningen på hur många gånger loopen har kört. Hur många gissningar behövde du för att gissa rätt?