if-Anweisung in switch-Anweisung

httpdigest

Top Contributor
Naja, vorallen Dingen auch halt einfach mal sagen, was denn das Problem ist?
Ist immer lustig, wenn Leute einfach nur einen Screenshot von der Aufgabenstellung machen.
Und dann denken, dass Leute hier das einfach für sie machen.
Meist passiert aber genau das, dass sich andere Forenmitglieder in 30 Seiten langen Diskussionen verlieren, so dass irgendwann die perfekte Lösung herauskommt und der OP sie dann einfach kopieren kann. :)
 

Hansen_07

Bekanntes Mitglied
Aber da hindert dich doch niemand dran, dich an die Lösung zu machen. Wenn du konkrete Fragen hast, stelle sie einfach.
 
Java:
package A;
public class B {
    public static void main( String[] args ) {
        //int zahl=IO.readInt();
        int zahl;
        zahl=-5;
        
        switch(zahl){   
        case -1:
        case 0:
        case 1:
        System.out.println("nein");
        break;       
        case 4:
            System.out.println("weiß nicht");
            break;
        case 5:
        case 6:
            switch(zahl) {
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
                System.out.println("ja");
                break;
            }
        break;
        default:System.out.println("vielleicht");
        break;
        }   
    }
}

/*Antworten zum Check
0=nein
3=vielleicht
4=weiß nicht
6=ja
9=vielleicht
20=vielleicht
-5=vielleicht

if(zahl>3&&zahl<7){
if(zahl>4&&zahl<10){
System.out.println("ja");   
}else{
System.out.println("weiß nicht");
}
}else if(zahl >=-1&&zahl<=1){
System.out.println("nein");
}else{
System.out.println("vielleicht");
}

wenn zahl größer als drei und kleiner als 7
und noch größer als 4 und kleiner als 10
dann ja
if>>if

wenn zahl größer als drei und kleiner als 7
aber nicht größer als 4 und kleiner als 10
dann weiß nicht
if>>else

wenn nichts zutrifft
dann vielleicht
else

wenn zahl größer gleich -1 und zahl größer gleich 1
else if
*/
 
saß jetz schon lange nicht mehr vor meiner Entwicklerumgebung und hatte noch immer das Teil im Workspace gehabt
daher hier einmal die vollständige Bearbeitung.
Tipp:
erst das Vorgegebene coden
dann prüffälle erstellen
dann logisch aufschlüsseln
dann eigenes Konstrukt coden
und mit den vorher erstellten Ergebnissen gegenprüfen.
wenn das selbe kommt, dann ist es korrekt.

Ps. Ich glaube es sollte lange genug hin sein, sodass der Fragesteller das Ergebnis nicht mehr nutzen kann :p
PPS. ich bin noch immer nicht gut. Wenn ich mich also an etwas dran mache und dann das Ergebnis zeige dann nicht nur um was zu haben und anderen zu helfen, sondern immer auch um das besprechen zu können. Effizienz meine Damen und Herren ;-)
 

mihe7

Top Contributor
@StudyInformatik das Switch-Statement in Zeile 19 ist natürlich Käse.

Ich würde die if-Blöcke der Aufgabe erstmal ordentlich formatieren:
Java:
if (zahl > 3 && zahl < 7) {
    if (zahl > 4 && zahl < 10) {
        System.out.println("Ja");
    } else {
        System.out.println("weiß nicht");
    }
} else if (zahl >= -1 && zahl <= 1) {
    System.out.println("nein");
} else {
    System.out.println("vielleicht");
}

Dann sieht man gleich, dass die Prüfung zahl < 10 überflüssig ist, denn der Zweig wird nur besucht, wenn zahl< 7 gilt. Also wegstreichen:
Java:
if (zahl > 3 && zahl < 7) {
    if (zahl > 4) {
        System.out.println("Ja");
    } else {
        System.out.println("weiß nicht");
    }
} else if (zahl >= -1 && zahl <= 1) {
    System.out.println("nein");
} else {
    System.out.println("vielleicht");
}
Für ein "ja" muss offensichtlich zahl > 4 && zahl < 7 gelten, d. h. zahl == 5 || zahl == 6, ein "weiß nicht" kann nur im Fall zahl == 4 auftreten. Das "nein" steht schon korret da, lässt sich als Disjunktion formulieren: zahl == -1 || zahl == 0 || zahl == 1 und in allen anderen Fällen soll "vielleicht" ausgegeben werden.

Naja, und damit hat man das switch-Statement eigentlich schon dastehen:
Java:
switch (zahl) {
    case -1:
    case 0:
    case 1:
        System.out.println("nein");
        break;
    case 4:
        System.out.println("weiß nicht");
        break;
    case 5:
    case 6:
        System.out.println("ja");
        break;
    default:
        System.out.println("vielleicht");
        break;
}
 

DefconDev

Bekanntes Mitglied
Naja, und damit hat man das switch-Statement eigentlich schon dastehen:
Java:
switch (zahl) {
    case -1:
    case 0:
    case 1:
        System.out.println("nein");
        break;
    case 4:
        System.out.println("weiß nicht");
        break;
    case 5:
    case 6:
        System.out.println("ja");
        break;
    default:
        System.out.println("vielleicht");
        break;
}

Damit der ein oder andere sich an die neue Schreibweise gewöhnen mag:
Java:
var result = switch (zahl) {
                case -1, 0 , 1 -> "nein";
                case 4 -> "weiß nicht";
                case 5, 6 -> "ja";
                default -> "vielleicht";
            };
System.out.println(result);
 

Neue Themen


Oben