Wieso funktioniert mein Code ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Wieso funktioniert mein Code ?

    Wieso funktioniert mein Code ?
    Hallo Jungs,

    selten das ich mich hier mal blicken lasse, jedoch steht bald meine Semesterarbeit in Java an und beim wiederholen ist mir nun folgende Frage aufgekommen:

    Der nachfolgende Code macht mich ein wenig Kopfzerbrechen..
    Der Auskommentierte Teil funktioniert und ist von meinem Prof, der andere Teil von mir..
    Beide Funktionieren und das was sie sollen..
    Aber ich finde meinen Code doch um einiges logischer.. Wieso funktioniert nun der Code vom Prof ?
    Er unterscheidet gar nicht, sondern lässt einfach nur Strings ausgeben
    Würde mich freuen, wenn Ihr da eine Idee habt.

    LG GerLiquid


    Quellcode

    1. int wert= 3;
    2. switch (wert)
    3. {
    4. /*case 2:
    5. System.out.println("zwei");
    6. case 3:
    7. System.out.println("zwei oder drei");
    8. break;
    9. case 4:
    10. System.out.println("vier");
    11. break;
    12. case 5:
    13. case 6:
    14. case 7:
    15. case 8:
    16. case 9:
    17. case 10:
    18. System.out.println("zwischen vier und zehn");
    19. break;
    20. default:
    21. System.out.println("anders");
    22. break;
    23. */
    24. case 2: wert=2;
    25. System.out.println("zwei");
    26. break;
    27. case 3: wert = (2 | 3);
    28. System.out.println("zwei oder drei");
    29. break;
    30. case 4: wert=4;
    31. System.out.println("vier");
    32. break;
    33. default:
    34. System.out.println("anders");
    35. break;
    36. }
    Alles anzeigen
    Was genau verstehst du den nicht?
    Er unterscheidet doch, sollte die Zahl 5,6,7,8,9 oder 10 sein dann springt er so lange in die nächste Case bis ein break kommt.
    In dem Fall dann eben bis Case 10.

    Bei dir ist bei Case 2: wert = 2 das wert = 2 total sinnlos, da case 2 <- die zwei dafür ja schon zuständig ist. Er überprüft den Wert der hinter Switch in den Klammern steht mit dem Wert der hinter Case steht, in dem Fall eben die Variable 'wert' mit der Zahl hinter Case '2'.

    Tipp: Achte mal darauf wo dein Prof. die breaks gesetzt hat ;)
    Ahhhsoooo..

    Jetzt verstehe ich, dachte die Bezeichnung "case 2; " würde einfach nur aussagen, dass es nun das Case zwei ist.. und die zwei nicht mehr auszusagen hat..
    Dann ist mir das klar, wieso der Code des Profs besser ist als meiner..
    Vielen dank für die schnelle Lösung meines Problems.

    Viele Grüße
    GerLiquid