Switch-Case in Java - Java Programmieren Lernen Deutsch - 23

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 39

  • @eliasfussl6206
    @eliasfussl6206 2 года назад +9

    Hier wäre meine Lösung für die Challenge: Wahrscheinlich nicht die eleganteste Lösung, aber es sollte funktionieren
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args){
    double counter = 0; //Anzahl an eingegebenen Noten
    double sum = 0; // Summe der Noten
    boolean weiter = true;
    Scanner scan = new Scanner(System.in);
    System.out.println("Welche Noten hattest du?");
    System.out.println("Um den Durchschnitt zu errechnen, tippe fertig.");
    while(weiter) {
    String eingabe = scan.nextLine();
    counter++;
    switch (eingabe) {
    case "Eins":
    sum++;
    break;
    case "Zwei":
    sum += 2;
    break;
    case "Drei":
    sum += 3;
    break;
    case "Vier":
    sum += 4;
    break;
    case "Fünf":
    sum += 5;
    break;
    case "Sechs":
    sum += 6;
    break;
    case "fertig":
    weiter = false;
    counter --;
    break;
    default:
    counter --;
    System.out.println("Da hast Du dich wohl vertippt");
    System.out.println("Hast du die Zahlen auch groß geschrieben?");
    }
    }
    double durchschnitt = sum / counter;
    System.out.println(" Dein Durchschnitt lautet: " + durchschnitt );
    }
    }

    • @JonasKeil
      @JonasKeil  2 года назад +3

      Die Lösung finde ich klasse! Danke fürs teilen :)) Wird gleich angepinnt😃👍🏻

    • @Wasserkleber
      @Wasserkleber Год назад

      Habe deine Lösung noch ein wenig verbessert:
      import java.util.Scanner;
      public class Main {
      public static void main(String[] args){
      double counter = 0; //Anzahl an eingegebenen Noten
      double sum = 0; // Summe der Noten
      Scanner scan = new Scanner(System.in);
      System.out.println("Welche Noten hattest du?");
      System.out.println("Um den Durchschnitt zu errechnen, tippe fertig.");
      loop: while(true) {
      String eingabe = scan.nextLine();
      counter++;
      switch (eingabe) {
      case "1":
      sum++;
      break;
      case "2":
      sum += 2;
      break;
      case "3":
      sum += 3;
      break;
      case "4":
      sum += 4;
      break;
      case "5":
      sum += 5;
      break;
      case "6":
      sum += 6;
      break;
      case "fertig":
      counter --;
      break loop;
      default:
      counter --;
      System.out.println("Da hast Du dich wohl vertippt");
      System.out.println("Hast du die Zahlen auch groß geschrieben?");
      }
      }
      System.out.println(" Dein Durchschnitt lautet: " + (sum / counter));
      }
      }

    • @Python-Knowladge
      @Python-Knowladge Год назад

      man könnte ein mapping der zahlen machen ("Eins":1 usw...) dann einfach switch... und sum + das eingegebene (des mappings) die cases für fertig und default bleiben natürlich

  • @colinfelber6975
    @colinfelber6975 8 месяцев назад

    Obwohl der Dozent recht gut ist, muss ich sagen, dass ich über deine Videos viel mehr lerne! Vielen Dank für alles!

  • @JonasKeil
    @JonasKeil  2 года назад +1

    🎉Wenn euch die Videos gefallen, dann unterstützt mich auf Patreon : www.patreon.com/JonasKeil
    📢Als Community Java lernen *(Discord)* : discord.gg/wkWe3FvdSu
    🚀Lerne Java in einer *Playlist* : bit.ly/3GKMucx

  • @abdulrahmanalhamidi5001
    @abdulrahmanalhamidi5001 2 года назад +3

    Wieder ein gutes Video :)

    • @JonasKeil
      @JonasKeil  2 года назад +1

      Vielen Dank, freut mich dass es dir gefällt😁🎉

  • @asbs946
    @asbs946 2 года назад +3

    Hey, du bringst super Videos raus. Danke dafür. Kannst du auch etwas zu JUnit, Lambda Ausdrücke und die Nutzung des Debuggers machen?

    • @JonasKeil
      @JonasKeil  2 года назад +1

      Vielen dank für das tolle Feedback. Ist immer wieder toll zu sehen, dass ich euch mit meiner Arbeit helfen kann. Gern produziere ich die Videos, habe sie mir schon notiert😁🎉

  • @ThomasRoedigerIT
    @ThomasRoedigerIT Год назад +1

    3:12 Das mit den Einrückungen stimmt nicht! Die sind für den Compile und zur Laufzeit vollkommen egal, es wird alles bis zum nächsten "case" (bzw. break) ausgeführt.
    Für einen guten Stil sind sinnvolle Einrückungen aber dennoch hilfreich.

  • @jacobmeilutat884
    @jacobmeilutat884 2 года назад +2

    Echt gut erklärt👍

    • @JonasKeil
      @JonasKeil  2 года назад

      Vielen Dank für das Feedback Jacob😁🙌🏻

  • @rxnxmx
    @rxnxmx 2 года назад +1

    Ich gebe hier gerne auch meine Lösung zum besten. habe zwar casts benutzt am ende damit auch eine richtige kommazahl rauskommt aber das hätte man bestimmt auch anders lösen können. ich empfand es so als ein wenig eleganter. lg
    import java.util.Scanner;
    public class JT10_Notendurchschnitt {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int summe = 0;
    int counter = 0;
    double durchschnitt = 0;
    boolean weiter = true;
    System.out.println("gib deine Noten ein");
    System.out.println("um den Durchschnitt zu brechnen tippe \"0\"");
    while (weiter) {
    int note = scanner.nextInt();
    if (note

    • @JonasKeil
      @JonasKeil  2 года назад

      Wirklich gut gelöst, neoda! :)

  • @hannesz6322
    @hannesz6322 2 года назад +1

    super erklärt! Auch die Übungsaufgabe am Ende finde ich super. Wird die dann im nächsten Video aufgelöst? :D

    • @JonasKeil
      @JonasKeil  2 года назад

      Vielen Dank für das Feedback, besonders dass du die Challenges feiert freut mich. In der Regel kommen relativ schnell Kommentare mit Lösungsvorschlägen, den Besten pinne ich dann als Lösung an. Eine mögliche Lösung stelle ich in meinen Videos nicht vor. Ich gebe aber jedem der seine Lösung hier teilt gern Feedback :)

    • @hannesz6322
      @hannesz6322 2 года назад

      @@JonasKeil danke dir, ich hab mich vorhin Mal dran gesetzt und werde sie Mal hier als Kommentar reinstellen, wenn ich daheim bin :)

    • @hannesz6322
      @hannesz6322 2 года назад +1

      @@JonasKeil btw die Klausur hab ich verkackt, war derbe schwer hab nix gecheckt xD
      In der Vorlesung : rechne 1+3 -2
      In der Klausur : mache eine Induktion aus 2n^3 /4x-z! 😂

    • @JonasKeil
      @JonasKeil  2 года назад

      @@hannesz6322 Ja sehr gern, mach das😁🙌🏻

    • @hannesz6322
      @hannesz6322 2 года назад +2

      Aber vor der Wiederholungsklausur werd ich nochmal alle deine Videos schauen 1000x besser erklärt als unser Prof.Dr.Dr.Dr.h.c :)

  • @avu4922
    @avu4922 4 месяца назад

    Hier mein Lösung für die Challenge:
    import java.util.ArrayList;
    import java.util.Scanner;
    public class Notendurchschnitt {
    public static void main(String[] args) {
    ArrayList noten = new ArrayList();
    int eingabe;
    double durchschnitt;
    eingabe = 0;
    System.out.println("Gib Noten von 1 bis 6 ein und beende das Programm indem du /ende/ eingibst.");
    is: while (true) {
    Scanner scan = new Scanner(System.in);
    String input = scan.next();
    switch (input) {
    case "1":
    eingabe = 1;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "2":
    eingabe = 2;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "3":
    eingabe = 3;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "4":
    eingabe = 4;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "5":
    eingabe = 5;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "6":
    eingabe = 6;
    System.out.println("Wurde hinzugefügt!");
    break;
    case "ende":
    durchschnitt = berechne(noten);
    System.out.println(durchschnitt);
    break is;
    default:
    eingabe = 0;
    System.out.println("Noten nur von 1 bis 6 gültig!");
    break;
    }
    if (eingabe > 0) {
    noten.add(eingabe);
    }
    }
    }
    private static double berechne(ArrayList i) {
    double d;
    int sum;
    d = 0;
    sum = 0;
    for (int j : i) {
    sum += j;
    }
    d = (double) sum / i.size();
    return (d);
    }
    }

  • @kimik5812
    @kimik5812 2 года назад

    Ich habe anstatt String ergebnis = "" ;
    int ergebnis;
    gemacht da ich anstatt Eins , 1 haben wollte
    und dies funktioniert nicht ganz. WOran liegt das ?

  • @morinelnelly7806
    @morinelnelly7806 10 месяцев назад

    Warum muss beim Befehl "int würfel = random.nextInt(bound:6) + 1; " noch am Ende + 1 rechnen? 06:15

    • @cartooneconomist
      @cartooneconomist 9 месяцев назад

      Der Zähler beginnt ja bei 0 also wäre sonst bspw. drei als Ausgabe eine 2

  • @maxiviehauser7041
    @maxiviehauser7041 2 года назад +1

    Hier meine Lösung zur Challenge:
    package projekt2;
    import java.util.Scanner;
    public class OwnSwitchCaseChallenge {
    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    double result;
    double sum = 0;
    double counter = 0;
    String grade = "";
    System.out.println("Sie möchten ihren Notendurschnitt berechnen? ");
    System.out.println("Dann sind sie hier genau richtig!");
    System.out.println();
    whileloop: while (true) {
    System.out.println(
    "Geben sie die Noten in Kleinbuchstaben an und bestätigen sie ihre Eingabe mit der Enter Taste:");
    System.out.println("Zum Beenden und Durschnitt berechnen tippen sie STOPP und bestätigen sie mit Enter!");
    grade = scan.next();
    switch (grade) {
    case "eins":
    System.out.println("1 wurde hinzugefügt");
    sum += 1;
    counter++;
    break;
    case "zwei":
    System.out.println("2 wurde hinzugefügt");
    sum += 2;
    counter++;
    break;
    case "drei":
    System.out.println("3 wurde hinzugefügt");
    sum += 3;
    counter++;
    break;
    case "vier":
    System.out.println("4 wurde hinzugefügt");
    sum += 4;
    counter++;
    break;
    case "fünf":
    System.out.println("5 wurde hinzugefügt");
    sum += 5;
    counter++;
    break;
    case "sechs":
    System.out.println("6 wurde hinzugefügt");
    sum += 6;
    counter++;
    break;
    case "STOPP":
    System.out.println("Der Notendurchschnitt wurde berechnet:");
    break whileloop;
    default:
    System.out.println("Hast du dich vertippt?");
    break;
    }
    }
    result = sum / counter;
    System.out.println("Der Notendurchsnitt beträgt: " + result);
    }
    }

  • @Alarium
    @Alarium 2 года назад +1

    Ich hab das Programm noch etwas Erweitert, weil ich sehen habe das Elias genau die gleiche Lösung wie ich hatte.
    import java.util.Scanner;
    public class Main{
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    double counter =0;
    int sum =0;
    boolean weiter = true;
    System.out.println("Bitte gebe deine Note in Textform (Eins, Zwei, Drei, Vier, Fünf oder Sechs) ein!");
    System.out.println("Bitte beachte die Groß und Kleinschreibung!");
    System.out.println("Wenn du alle Noten eingegeben hast, gebe Berechne ein!");
    while(weiter) {
    String notenEingabe = scanner.nextLine();
    counter++;
    switch (notenEingabe) {
    case "Eins":
    sum++;
    break;
    case "Zwei":
    sum+=2;
    break;
    case "Drei":
    sum+=3;
    break;
    case "Vier":
    sum+=4;
    break;
    case "Fünf":
    sum+=5;
    break;
    case "Sechs":
    sum+=6;
    break;
    case "Berechne":
    weiter = false;
    counter--;
    break;
    default:
    counter--;
    System.out.println("Das ist ist keine Note!!!" );
    System.out.println("Bitte gebe Eins, Zwei, Drei, Vier, Fünf, Sechs oder Berechne ein!");
    }
    }
    double durchschnitt = sum/counter;
    System.out.println("Die Summe deiner Noten beträgt: " + Math.round(sum));
    System.out.println("Du hast " + Math.round(counter) + " Noten eingegeben");
    System.out.println("Dein Notenschnitt beträgt: " + durchschnitt);
    if (durchschnitt

    • @JonasKeil
      @JonasKeil  2 года назад

      Wow, das ist ein wirklich gutes Programm! Man merkt, dass du dir dabei richtig viele Gedanken gemacht hast, meinen größten Respekt!💪🏼

    • @Alarium
      @Alarium 2 года назад +1

      @@JonasKeil danke sehr, warum ist es eigendlich nicht möglich bei einem switch hinter ein case einen logischen operator zu setzten, das wäre nähmlich praktisch

    • @JonasKeil
      @JonasKeil  2 года назад

      @@Alarium Hey Alarium, seit Java 17 gibt es bei Switch das sogenannte „Pattern Matching“. Das sollte dein Problem lösen denke ich :) Wenn du Fragen hast schreib mir gern. www.woolha.com/tutorials/java-pattern-matching-for-switch-examples

    • @Alarium
      @Alarium 2 года назад

      @@JonasKeil also ich wollte es so machen, das man bei den noten entweder Drei oder drei eigeben kann, falls man sich mal verschreibt, und das ohne noch mehr cases zu schreiben, aber das sieht irgendwie nicht nach dem aus was ich suche, oder ich bin gerade einfach nur lost :D, aber danke für deine hilfe

    • @JonasKeil
      @JonasKeil  2 года назад

      Haha okay, dann musst du das if Statement einfach in den Case-Block schreiben :D