Sista helgen som jag kommer bli förbannad på java på ett tag. (Sista laborationen). Om man kan hjälpa skulle jag vara tacksam.
Varför derpar javas try-catch loss på mig? Antingen borde den fortsätta med koden efter loopen eller så borde den göra resten av sin kod och fortsätta med loopen, varför väljer koden att antingen loopa i evighet eller vägra fortsätta med koden?!
Se nedan:
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
public static void main(String[] args) throws InputMismatchException{
int enterNumber = 0;
int i=0;
int[] reorder;
Scanner las = new Scanner(System.in);
ArrayList talLista = new ArrayList();
System.out.println("Skriv in positiva heltal. Tryck RETUR för ny siffra. Avsluta med negativt heltal.");
while (enterNumber>=0){
try{
enterNumber=-1;
enterNumber = las.nextInt();
}catch(InputMismatchException erp){
System.out.println("Skriv bara in positiva heltal. Avsluta med negativt heltal.");
enterNumber = 0;
enterNumber = las.nextInt(); //Utan den här läser den aldrig in. ALDRIG. Utan loopar System.out.println-raden i evighet. MED den här ger den inputmismatchexception.
}
if(enterNumber>=0){
talLista.add(i, enterNumber);
i++;
}
}
</pre></div></div>
Edit: Lagt till throws, egentligen onödig här, gjorde ingen skillnad.
Varför derpar javas try-catch loss på mig? Antingen borde den fortsätta med koden efter loopen eller så borde den göra resten av sin kod och fortsätta med loopen, varför väljer koden att antingen loopa i evighet eller vägra fortsätta med koden?!
Se nedan:
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
public static void main(String[] args) throws InputMismatchException{
int enterNumber = 0;
int i=0;
int[] reorder;
Scanner las = new Scanner(System.in);
ArrayList talLista = new ArrayList();
System.out.println("Skriv in positiva heltal. Tryck RETUR för ny siffra. Avsluta med negativt heltal.");
while (enterNumber>=0){
try{
enterNumber=-1;
enterNumber = las.nextInt();
}catch(InputMismatchException erp){
System.out.println("Skriv bara in positiva heltal. Avsluta med negativt heltal.");
enterNumber = 0;
enterNumber = las.nextInt(); //Utan den här läser den aldrig in. ALDRIG. Utan loopar System.out.println-raden i evighet. MED den här ger den inputmismatchexception.
}
if(enterNumber>=0){
talLista.add(i, enterNumber);
i++;
}
}
</pre></div></div>
Edit: Lagt till throws, egentligen onödig här, gjorde ingen skillnad.