ist meine Vorgehensweise richtig? Es ist sicher keine Meisterleistung die Aufgabe zu schaffen, aber denke ich dass meine Lösung nicht ganz richtig ist.
Die Aufgabestellung ist folgende:
Wenn es regnet müssen die Kinder Hausschuhe anziehen und wenn es nicht regnet, können die Kinder direkt in die Klassen gehen.
Irgendwie kommt mir meine Lösung nicht genügend und sehr abstract vor.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean esRegnet = sc.nextBoolean();
if(esRegnet == true){
System.out.println("Die Kinder sollen Hausschuhe anziehen");
}else {
System.out.println("Die Kinder gehen gleich in die Klassen");
}
}
}
mhm die Aufgabenstellung an sich ist etwas schwammig, was genau du machen musst.
Woertlich betrachtet ist die Negation, dass sie aber Hausschuh anziehen koennen. Also, wenn es regnet muessen sie Hausschuhe anziehen bevor sie in die Klasse gehen duerfen. Wenn es nicht regnet,koennen sie Hausschuhe anziehen, oder eben gleich in die Klasse gehen.
Aber wie gesagt, wenn nicht ausgedrueckt wurde, was man fuer ein Programm erwartet ist eine “richtige” Antwort schwer
Ja wenn es regnet sollen die Kinder Hausschuhe anziehen und wenn nicht, dann können die mit Strassenschuhe in die Klasse gehen. Es kommt mir bei meiner Lösung nur das komisch, dass von komandozeile true oder false eingegeben werden muss, oder ist das richtige Lösung?
Darüber ist in der “Aufgabenstellung” nichts gesagt, demnach kann man auch nicht sagen, ob es richtig oder falsch ist. Aber etwas grundsätzlich falsches ist daran nicht…
Das einzig falsche ist der Vergleich “if(esRegnet == true)”. Hier genügt (bzw. ist wegen des SemanticErrors No.1 eigentlich Pflicht) ein einfaches “if(esRegnet)”.
Die Aufgabenstellung ist in der Tat sehr schwammig.
Ich würde es so versuchen um 1. Auch die Kinder zu berücksichtigen, die evtl. immer die Hausschuhe anziehen und 2. von dem static wegzukommen:
private boolean isRaining;
public static void main(String[] args) {
new KlassenZimmer(10, 10);
}
public KlassenZimmer(int anzahlRegen, int anzahlKeinRegen){
setRaining(true);
for(int i = 0; i < anzahlRegen; i++){
new Kind(isRaining);
}
setRaining(false);
for(int i = 0; i < anzahlKeinRegen; i++){
new Kind(isRaining);
}
}
private void setRaining(boolean rainig){
this.isRaining = rainig;
if(isRaining){
System.out.println("Es regnet jetzt.");
}else{
System.out.println("Es ist trocken.");
}
}
class Kind{
Kind(boolean isRaining){
if(isRaining){
System.out.println("Das Kind zieht Hausschuhe an.");
}else{
if(Math.random()>0.8){
System.out.println("Das Kind zieht trotzdem Hausschuhe an!");
}else{
System.out.println("Das Gör kommt mit Straßenschuhen rein.");
}
}
}
}
}```