Permalänk
Medlem

räknefråga

Har frågat om detta program förut här, och fick mycket bra hjälp=)
Har dessvärre kört fast igen, eller programmet fungerar och gör det jag vill, men uträkningen fungerar inte. Jag har antagligen missat något, men jag ser inte vad.

Antagligen jäkligt simpelt, men för en nybörjare är det svettigt...

Programmet ska räkna ut total veckolön efter att man matat in arb.timmar och timlön, överstiger timmarna 40 så betalas övertidsersättning ut med 50% på den ord. timlönen för de överskjutande timmarna.

Detta är min kod:

import javax.swing.*; public class Pay3{ public static void main(String[] arg) { String s; s = JOptionPane.showInputDialog("Ange antal arbetstimmar: "); double a = Double.parseDouble(s); JOptionPane.showInputDialog("Ange timlön:"); double b = Double.parseDouble(s); if (a <= 40) { double c = a*b; JOptionPane.showMessageDialog(null, "veckolönen är: " + c); } else if (a > 40) { double c = ( 40*b ) + (( a-40 )*1.5); JOptionPane.showMessageDialog(null, "veckolönen är: " + c); } System.exit(0); } }

Permalänk
Medlem

Nu skrev du ju inte vad som gick snett, så det tog ett tag innan jag upptäckte felet: Du tilldelar aldrig inmatningen från timlönen till en variabel. Resultatet blir att variabel a och b får lika värde.

Återigen (fan vad gaggig jag känner mig) namnge dina variabler så att man kan läsa vad de hanterar för värde!

edit: och tabba lugnt och metodiskt istället för sporadiskt och slumpmässigt

Visa signatur

Kom-pa-TI-bilitet

Permalänk

Vill du inte ha (40*b)+((a-40)*(1.5*b)) ?

Permalänk

import javax.swing.*; public class Pay3 { public static void main(String[] arg) { String input = JOptionPane.showInputDialog("Ange antal arbetstimmar: "); double hoursPerWeek = Double.parseDouble(input); input = JOptionPane.showInputDialog("Ange timlön:"); double hourlyWage = Double.parseDouble(input); if (a <= 40) { double c = hoursPerWeek * hourlyWage; JOptionPane.showMessageDialog(null, "veckolönen är: " + c); } else if (a > 40) { double c = (40 * hourlyWage) + ((hoursPerWeek - 40) * (1.5 * hourlyWage)); JOptionPane.showMessageDialog(null, "veckolönen är: " + c); } System.exit(0); } }

Permalänk
Medlem

Tack så hemskt mycket för hjälpen!!
Men var mitt enda fel att jag missade att ta x timlönen på slutet?
Vill verkligen förstå vad jag gjorde för fel!

Och Teknocide: Jag lovar att namnge de bättre i fortsättningen! Jag är ganska ny på programmering, men fler och fler bitar börjar falla på plats i huvudet nu!

Tack än en gång!

Permalänk
Medlem

Nej du glömde att skriva över "s" med den andra inmatningsrutan. Den spottar bara ut din andra utmatning i ingenting.

Permalänk
Medlem

Ja! Nu ser jag! Tack så mycket!!