2 svar
137 visningar
Mhayia är nöjd med hjälpen
Mhayia 6
Postad: 12 maj 2022 14:55

Kontrollera om inmatningen är en int variabel.

Hej!

 

Jag har gjort en meny där användaren ska göra sitt val mellan 1-3. Jag har lagt till en else sats ifall användaren skulle skriva en annan siffra än just 1-3. Men jag vill undvika även error som uppstår OM användaren skulle skriva tex en bokstav eller sträng. 

Jag har förstått att man ska använda antingen isNaN(värde) eller Number.IsNaN(värde) och att man då får ett booliskt värde som svar. Men oavsett hur jag skriver det i mitt program så får jag error meddelanden. Jag har googlat ihjäl mig vid det här laget och förstår verkligen inte vad jag gör fel. 

Min kod: 

 

while (aktivMeny)
{

System.out.println("Vilken svårighetsgrad?"); //Meny där användaren gör sitt val vilket spel hen vill spela.
System.out.println("1. Lätt (1-10)");
System.out.println("2. Mellan (1-100)");
System.out.println("3. Svårt (1-1000)");
int valSvårighetsgrad = sc.nextInt();

if (valSvårighetsgrad == 1) //Åtgärd efter användarens val från 1-3
{
int antalGissningar = playGame(10);
System.out.println("Du gjorde " + antalGissningar + " gissningar innan du fann talet.");
aktivMeny = false;

}
else if (valSvårighetsgrad == 2)
{
int antalGissningar = playGame(100);
System.out.println("Du gjorde " + antalGissningar + " gissningar innan du fann talet.");
aktivMeny = false;
}
else if (valSvårighetsgrad == 3)
{
int antalGissningar = playGame(1000);
System.out.println("Du gjorde " + antalGissningar + " gissningar innan du fann talet.");
aktivMeny = false;
}
else if(isNaN(valSvårighetsgrad)) //Fångar upp tillfällen då användaren väljer en annan siffra än 1-3
{
System.out.println("Ogiltigt val, försök igen.");
System.out.println();
}

}

CurtJ 1143
Postad: 12 maj 2022 17:19

nextInt kastar en exception (InputMismatchException) om strängen inte går att konvertera till en int.

Testa

boolean done = false
do {
    try {
    	// Läs in och konvertera till int
       done = true;
    } catch () {
       // Felhantera eller gör inget. KOden i try.. repeteras
    }	
} while (!done) 
CurtJ 1143
Postad: 12 maj 2022 22:06

Söker du svar på språkrelaterade frågor så kan följande länk va ett bra alternativ. Jag använder den ofta.

https://www.w3schools.com

Lycka till

Svara Avbryt
Close