Java fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.8 KiB

Kysy Uudestaan

Kirjoita luokka KysyUudestaan ja lisää siihen main-metodi.

Main-metodissa sinun tulee kysyä käyttäjältä kokonaislukutyyppistä syötettä. Jos käyttäjä antaa syötteen, joka ei ole kelvollinen kokonaisluku, ohjelmasi tulee kysyä syötettä uudelleen esimerkkisuorituksen mukaisesti.

Kun käyttäjä syöttää kelvollisen kokonaisluvun, ohjelmasi tulee tulostaa annettu luku esimerkkisuorituksen mukaisesti ja sen suorituksen tulee päättyä.

Totetutustavastasi riippuen sinun tulee varautua tehtävässä joko InputMismatchException tai NumberFormatException -tyyppisiin poikkeuksiin.

Huom: ratkaisutavastasi riippuen saatat tässä tehtävässä törmätä ikuiseen silmukkaan, jossa ohjelmasi ei kysy virheellistä arvoa uudelleen. Tämä johtuu siitä, että virheellinen syöte jää System.in-syötepuskuriin ja seuraavalla kerralla ohjelmasi yrittää lukea samaa virheellistä arvoa uudelleen. Stack Overflow -palvelussa on tarkempi keskustelu tästä aiheesta.

Syötä kokonaisluku: 1_000
Virheellinen luku!
Syötä kokonaisluku: ?
Virheellinen luku!
Syötä kokonaisluku: +
Virheellinen luku!
Syötä kokonaisluku: a b c
Virheellinen luku!
Syötä kokonaisluku: -8
Syötit luvun -8.

KysyUudestaan.java

import java.util.InputMismatchException;
import java.util.Scanner;
public class KysyUudestaan {
public static void main(String[] args) {
while (true) {
System.out.print("Syötä kokonaisluku: ");
Scanner syote = new Scanner(System.in);
try {
int luku = syote.nextInt();
System.out.printf("Syötit luvun %d.", luku);
System.exit(0);
} catch (InputMismatchException e) {
System.out.println("Virheellinen luku!");
}
}
}
}