Lösungsvorschlag: Hasen und Hühner

Variablen und Konstanten

Konstanten

Wert Beschreibung Datentyp
1 Addieren/Subtrahieren eines Tiers Ganzzahl
2 Anzahl Beine eines Huhns Ganzzahl
4 Anzahl Beine eines Hasen Ganzzahl

Variablen

Bezeichner Datentyp
animals int
legs int
rabbit int
chicken int
calculated int

Programmablaufplan

Realisierung

Animals.java
import java.util.Scanner;
 
/**
 * calculate the number of rabbits and chickens
 * 
 * @author Marcel Suter
 * @since 2017-10-02
 * @version 1.0
 */
public class Animals {
 
    Scanner scanner;
 
    /**
     * constructor
     */
    public Animals() {
        scanner = new Scanner(System.in);
    }
 
    /**
     * starts the execution
     * 
     * @param args
     *            command line arguments
     */
    public static void main(String[] args) {
        Animals program = new Animals();
 
        System.out.println("Willkommen");
        program.calculate();
        System.out.println("Bye Bye");
    }
 
    /**
     * calculates the numbers
     */
    private void calculate() {
        int animals;
        int legs;
        int rabbit;
        int chicken;
 
        System.out.print("Anzahl Tiere >");
        animals = scanner.nextInt();
        scanner.nextLine(); // Scanner leeren
 
        System.out.print("Anzahl Beine >");
        legs = scanner.nextInt();
        scanner.nextLine(); // Scanner leeren
 
        rabbit = animals;
        chicken = 0;
 
        while ((rabbit * 4 + chicken * 2) > legs) {
            rabbit = rabbit - 1;
            chicken = chicken + 1;
        }
 
        System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner");
 
    }
}

Realisierung Erweitert

Animals.java
import java.util.Scanner;
 
/**
 * calculate the number of rabbits and chickens
 *
 * @author Kevin Maurizi
 * @since 2021-11-11
 * @version 1.0
 */
public class Animals {
 
    Scanner scanner;
 
    /**
     * constructor
     */
    public Animals() {
        scanner = new Scanner(System.in);
    }
 
    /**
     * starts the execution
     *
     * @param args
     *            command line arguments
     */
    public static void main(String[] args) {
        Animals program = new Animals();
 
        System.out.println("Willkommen");
        program.calculate();
        System.out.println("Bye Bye");
    }
 
    /**
     * calculates the numbers
     */
    private void calculate() {
        int animals;
        int legs;
        int rabbit;
        int chicken;
        int maxLegs;
        int minLegs;
 
        System.out.print("Anzahl Tiere >");
        animals = scanner.nextInt();
        scanner.nextLine(); // Scanner leeren
 
        maxLegs = animals * 4;
        minLegs = animals *2;
 
        System.out.print("Anzahl Beine >");
        legs = scanner.nextInt();
        scanner.nextLine(); // Scanner leeren
 
        if(legs > maxLegs || legs < minLegs){
            System.out.print("Anzahl Beine ungültig, bitte erneut eingeben (Min: "+minLegs +" Max: " + maxLegs +") >");
            legs = scanner.nextInt();
            scanner.nextLine(); // Scanner leeren
        }
 
        rabbit = animals;
        chicken = 0;
 
        while ((rabbit * 4 + chicken * 2) > legs) {
            rabbit = rabbit - 1;
            chicken = chicken + 1;
        }
 
        System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner");
 
    }
}

Realisierung Erweiterung der Erweiterung

Animals.java
import java.util.Scanner;
 
/**
 * calculate the number of rabbits and chickens
 *
 * @author Kevin Maurizi
 * @since 2021-11-11
 * @version 1.0
 */
public class Animals {
 
    Scanner scanner;
 
    /**
     * constructor
     */
    public Animals() {
        scanner = new Scanner(System.in);
    }
 
    /**
     * starts the execution
     *
     * @param args
     *            command line arguments
     */
    public static void main(String[] args) {
        Animals program = new Animals();
 
        System.out.println("Willkommen");
        program.calculate();
        System.out.println("Bye Bye");
    }
 
    /**
     * calculates the numbers
     */
    private void calculate() {
        int animals;
        int legs;
        int rabbit;
        int chicken;
        int maxLegs;
        int minLegs;
 
        System.out.print("Anzahl Tiere >");
        while(!scanner.hasNextInt()){  // Überprüfen ob der User eine Zahl (int) eingegeben hat.
            System.out.print("Bitte eine Zahl eingeben. Anzahl Tiere >");
            scanner.nextLine(); // Scanner leeren, damit der User erneut eine Zahl eingeben muss.
        }
        animals = scanner.nextInt(); // Überprüfte Zahl, bei der wir jetzt wissen, dass es ein "int" ist einlesen.
        scanner.nextLine(); // Scanner leeren
 
        maxLegs = animals * 4;
        minLegs = animals *2;
 
        System.out.print("Anzahl Beine >");
        while(!scanner.hasNextInt()){
            System.out.print("Bitte eine Zahl eingeben. Anzahl Beine >");
            scanner.nextLine();
        }
 
        legs = scanner.nextInt();
        scanner.nextLine(); // Scanner leeren
 
        while(legs > maxLegs || legs < minLegs){
            System.out.print("Anzahl Beine ungültig, bitte erneut eingeben (Min: "+minLegs +" Max: " + maxLegs +") >");
            while(!scanner.hasNextInt()){
                System.out.print("Bitte eine Zahl eingeben. Anzahl Beine >");
                scanner.nextLine();
            }
            legs = scanner.nextInt();
            scanner.nextLine(); // Scanner leeren
 
        }
 
        rabbit = animals;
        chicken = 0;
 
        while ((rabbit * 4 + chicken * 2) > legs) {
            rabbit = rabbit - 1;
            chicken = chicken + 1;
        }
 
        System.out.println("Es sind " + rabbit + " Hasen und " + chicken + " Huehner");
 
    }
}

© Marcel Suter