Try catch java.
Hej!
Jag håller på att lära mig Java. För det mesta så tycker jag att jag har hängt med, men nu har jag stött på patrull.
Med stor sannolikhet så är det något väldigt simpelt fel jag har gjort, men det skulle ändå vara skönt om någon mer rutinerad person med koll på Java kan hjälpa mig att förstå felet. Nedanför så kommer koden som har
package com.company;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
int a1 = 0;
int g1 = 0;
double m1 = 0;
int a2 = 0;
int g2 = 0;
double m2 = 0;
int result = 0;
boolean fortsätt = true;
while (fortsätt) {
Object[] options1 = {"Man", "Kvinna"};
JPanel panel = new JPanel();
panel.add(new JLabel("Ange ålder: "));
JTextField textField = new JTextField(10);
panel.add(textField);
result = JOptionPane.showOptionDialog(null, panel, "Uppgifter",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options1, null);
String ålder = textField.getText();
System.out.println(result);
try {
int age = Integer.parseInt(ålder);
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Försök igen");
fortsätt=true;
}
}
if (result == 0) {
a1++;
g1 = g1 + age;
}
else if (result == 1){
a2++;
g2 = g2 + age;
}
}
}
Tanken är att programmet ska samla in kön och ålder av användaren. När information är insamlad så ska programmet räkna ut medelåldern. Det i sig löste jag i min första version av programmet. Men för att göra koden vattentät så la jag in en en try och catch för att bli av med möjlig NumberFormatException. Catch och try verkar fungera som de ska, vilket i sig är skönt. Men istället så får jag problem med variabeln age. Ålder som skrivs in dialogrutan hamnar i variabeln age, men då jag har lagt in den i catch and try kommer jg inte åt den när jag försöker skriva g1 = g1 + age; respektive g2 = g2 + age;.
Vad kan alternativet vara för att få till del det? Förklara gärna så att en nybörjare förstår då målet faktiskt är att lära mig Java.
Mvh