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.