webForumDet fria alternativet

Kan indatan kontrolleras mer?

1 svar · 739 visningar · startad av Undran

UndranMedlem sedan jan. 200915 inlägg
#1

Ska Skriva ett grafiskt Javaprogram som beräknar porto för brev enligt följande taxa:

Vikt högst (gram) : Porto (kronor)
---------------------------------------
20 : 5.50
100 : 11.00
250 : 22.00
500 : 33.00

Brev över 500 gram räknas som paket.

Kan man göra det på ett annat sätt så att indatan kontrolleras mer?

import javax.swing.*;

public class Test2 {
public static void main( String[] arg) {

double vikt;
String indata;

indata = JOptionPane.showInputDialog(null," Vad väger ditt brev? ");

vikt = Double.parseDouble(indata);
if (vikt <= 0.0)

JOptionPane.showMessageDialog(null, " Fel ");

if ((vikt > 0.0) && (vikt <= 20.0))

JOptionPane.showMessageDialog(null, "Portot blir 5.50 kronor.");

if ((vikt > 20.0) && (vikt <= 100.0))

JOptionPane.showMessageDialog(null, "Portot blir 11.00 kronor.");
if ((vikt > 100.0) && (vikt <= 250.0))

JOptionPane.showMessageDialog(null, "Portot blir 22.00 kronor.");
if ((vikt > 250.0) && (vikt <= 500.0))

JOptionPane.showMessageDialog(null, " Portot blir 33.00 kronor.");
if (vikt > 500.0)

JOptionPane.showMessageDialog(null, " Går som paket.");
} 
}
SPiNMedlem sedan mars 20005 832 inlägg
#2

Double.parseDouble() kastar ett undantag (NumberFormatException) om värdet i strängen inte motsvarar en double, vilket du borde fånga också.

F.ö. så stämmer ju inte din portotabell mot svenska postens, bara så du vet. ;)

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb