|
|
- # 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!");
- }
- }
- }
- }
- ```
|