Lite hjälp i Java
Har ett litet problem med denna kod. Den fungerar att köra som den är men det blir fel man t.ex bara matat in endast tal som är över 100. Då finns alltså inga tal under 100 och det blir en division med 0. Då skrivs NaN ut som medelvärde för talgruppen under 100. Hur och var ska jag göra denna kontroll att det matats in något värde under 100 och först då ska medelvärdet räknas ut.
Tacksam för hjälp!
[-code] import static javax.swing.JOptionPane.*;
public class Hundra {
public static void main(String[] args) {
String indata;
int heltal = 0;
int talUnderHundra = 0;
int talOverHundra = 0;
int talHundra = 0;
int summaUnderHundra = 0;
int summaOverHundra = 0;
String welcome = "Välkommen!" + "\n" +
"Detta program läser in ett antal positiva heltal." + "\n" +
"Skriv in ett negativt tal för att avsluta programmet och visa sammanfattning.";
showMessageDialog (null, welcome);
while (heltal >= 0)
{System.out.println("Mata in ett heltal:");
indata = showInputDialog("Mata in ett positivt/negativt heltal:");
heltal = Integer.parseInt(indata);
if (heltal < 100 && heltal > 0){talUnderHundra++; summaUnderHundra += heltal;}
else if (heltal > 100) {talOverHundra++; summaOverHundra += heltal;}
else if (heltal == 100) {talHundra++;}
}
String message = "Sammanfattning" + "\n" +
"Antal tal över 100: " + talOverHundra + "\n" +
"Antal tal under 100: " + talUnderHundra + "\n" +
"Antal tal exakt 100: " + talHundra + "\n" +
"Totalt antal angivna värden: " + (talOverHundra + talUnderHundra + talHundra) + "\n" +
"Medel över hundra: " + ((double)summaOverHundra / talOverHundra) + "\n" +
"Medel under hundra: " + ((double)summaUnderHundra / talUnderHundra);
showMessageDialog(null, message);
}
}[-/code]