zaznaczam ze muszę użyć wyjątku.
Chce by np po wystąpieniu wyjątku użytkownik wprowadził ponownie wartość czyli powrócił do try.
na razie gdy np. wprowadzę do scannera jakieś słowo by wymusić działanie wyjątku. wyjątek się pojawia i gdy chce ponownie wprowadzić wartość kompilator omija mi c =in.nextInt(); i przechodzi od razu ponownie do wyjątku;
package Zadlab8;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Scanner br = new Scanner(System.in);
int k;
Convert_bin liczenie =new Convert_bin();
boolean czyPoprawne = false;
while(!czyPoprawne){
try{
int c=0;
c =in.nextInt();
liczenie.convert(c);
break;
}
catch(Exception e){
System.out.println("Został zgłoszony wyjątek");
}
System.out.println("wprowadz inna wartosc? wybierz 1");
System.out.println("ignore = 0");
k= br.nextInt();
if (k==0) czyPoprawne=true;
}
System.out.println(liczenie.lista.values());
}
}
Tu dam jeszcze klase która działa jak by ktoś chciał sprawdzić działanie programu.
package Zadlab8;
import java.util.HashMap;
import java.util.Map;
public class Convert_bin {
Map<Integer, StringBuilder> lista = new HashMap<Integer, StringBuilder>();
StringBuilder tak = new StringBuilder ();
void convert(int numers){
int k = 0;
int num=numers;
while(num!=0){
k=num%2;
num=num/2;
if(k !=0)
tak.append("1");
else
tak.append("0");
}
lista.put(numers, tak);
}
void get(Integer tak){
System.out.println(lista.get(tak));
}
public boolean contai(Integer key) {
return lista.containsKey(key);
}
}