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