Avatar billede OBS Novice
30. marts 2025 - 22:22 Der er 2 kommentarer

Hvad Hvis Analyser

Jeg har lavet et udkast til et HvadHvisAnalyserprogram, som jeg viser her:

import java.util.Scanner;

public class HvadHvisAnalyse {
   
    public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

            System.out.print("Indtast salgsprisen pr. enhed: 100");
            double salgspris = scanner.nextDouble();

            System.out.print("Indtast omkostningerne pr. enhed: 8");
            double omkostninger = scanner.nextDouble();

            System.out.print("Indtast antal solgte enheder: 2 ");
            int antalSolgte = scanner.nextInt();

            double profit = beregnProfit(salgspris, omkostninger, antalSolgte);
            System.out.println("Den nuværende profit er: " + profit);

            System.out.println("\nHvad hvis analyser:");
            for (double nySalgspris = salgspris - 5; nySalgspris <= salgspris + 5; nySalgspris += 1) {
                for (double nyeOmkostninger = omkostninger - 5; nyeOmkostninger <= omkostninger + 5; nyeOmkostninger += 1) {
                    double nyProfit = beregnProfit(nySalgspris, nyeOmkostninger, antalSolgte);
                    System.out.printf("Salgspris: %.2f, Omkostninger: %.2f => Profit: %.2f" , nySalgspris, nyeOmkostninger, nyProfit);

                }
            }

            scanner.close();
        }

        public static double beregnProfit(double salgspris, double omkostninger, int antalSolgte) {
            return (salgspris - omkostninger) * antalSolgte;
        }
    }
Når jeg kører programmet, vises  kun : Indtast salgsprisen pr. enhed: 100  i konsollen. Hvad kan det skyldes ?
Er der nogen, der har en forbedret udgave af  HvadHvisAnalyser med flere funktioner  ?
Avatar billede arne_v Ekspert
Skrevet i går kl. 03:28 #1
Den venter på at du skal indtaste salgsprisen.

Først når du har indtastet alle 3 oplysninger begynder programmet at skrive ud.
Avatar billede arne_v Ekspert
Skrevet i går kl. 03:30 #2
Jeg ville så have brugt BigDecimal fremfor double for beløb og have brugt en int som loop variable, men et har som sådan ikke noget med poblemet at gøre.

Og:

System.out.printf("Salgspris: %.2f, Omkostninger: %.2f => Profit: %.2f" , nySalgspris, nyeOmkostninger, nyProfit);


skal nok være:

System.out.printf("Salgspris: %.2f, Omkostninger: %.2f => Profit: %.2f'n" , nySalgspris, nyeOmkostninger, nyProfit);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester