Wczytywanie pojedynczego znaku z klawiatury.

0
import java.io.Console;
import java.util.Scanner;

public class WprowadzZKonsoli {

    public int wprowadzInt(){

        int liczba = 0;
        boolean dobra = false;

        while(dobra == false){
            try {
                Scanner sc = new Scanner(System.in);
                liczba = sc.nextInt();
                dobra = true;
                sc.close();
                return liczba;
            } catch (Exception e) {
                System.out.println(e + " Proszę wpisać poprawną liczbę." );
                dobra = false;

            }
        }
        return liczba;
    }

    public char wprowadzChar(){
        char znak='a';
        String napis;
        boolean dobra = false;

        while(dobra == false){
            try {
                Scanner sc = new Scanner(System.in);
                napis = sc.nextLine();
                char[] myChar;
                myChar = napis.toCharArray();
                dobra = true;
                znak = myChar[0];
                return znak;
            } catch (Exception e) {
                System.out.println(e + " Proszę wpisać poprawny znak." );
                dobra = false;
            }
        }
        return znak;
    }
}

public class Wyjatek {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int liczba;
        System.out.println("Podaj liczbe: ");
        WprowadzZKonsoli wp = new WprowadzZKonsoli();
        liczba = wp.wprowadzInt();
        System.out.println("Twoja liczba: " + liczba);

        char znak;
        System.out.println("Podaj znak: ");
        znak = wp.wprowadzChar();
        System.out.println("Twój znak to: " + znak);
    }
}

Wpisuję liczbę i potem od razu wyświetla się proszę wpisać poprawny znak, nie pojawia się w ogóle napis Proszę podać znak, dlaczego ? Jest może jakiś inny sposób na wczytanie znaku ?
Program się zapętla i dostaję taki błąd:

java.util.NoSuchElementException: No line found Proszę wpisać poprawny znak.
Jak użyję metody napis= sc.next();
Też dostaję zapętlone:

java.util.NoSuchElementException Proszę wpisać poprawny znak.
Jak dobrze, rozumiem nie znaleziono elementu, ale program nie dał mi go podać, więc pewnie dlatego się zapętla.

0

W jakim celu napisałeś to:

 sc.close();

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0