Was mache ich falsch in meiner Java Anwendung?

Jan.T

Mitglied
Guten Tag, ich lerne momentan Java und habe folgendes Beispielprogramm geschrieben:
Unbenannt.PNG
Ich möchte dass das Programm bei der Eingabe von 1 ausgibt das man Schokolade gewählt hat
und bei der Eingabe von 2 das man Kuchen gewählt hat
Mein Problem ist nun, dass das Programm bei egal welcher Eingabe nichts ausgibt. Wenn ich eine Else mache mit zb. "Ihre Zahl existiert nicht" wenn jemand zb. eine 3 eingibt, dann gibt er mir bei jeder Zahl beide ifs aus, ich bin echt überfragt hier.

Edit: OK, ich habe es herausgefunden, da stand ich heftig auf dem Schlauch, wenn ich meine int variable mit meiner eingabe initialisiere funktioniert es. Also zb:
Java:
schokolade = eingabe;
 
Zuletzt bearbeitet:
Hier nochmal als Code Formatiert, ohne Bild und mit else. Ich verstehe das es beides ausgibt weil ich = 1 und = 2 gemacht habe, aber ich verstehe nicht wie man es sonst machen soll

Java:
import java.util.*;
public class expressversandUebung {
 
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int schokolade, versand, gesamt, kuchen, eingabe;
    System.out.print("Geben sie ein welchen Artikel sie wollen: ");
    eingabe = scan.nextInt();
    schokolade = 1;
    kuchen = 2;

    
    if (schokolade == 1) {
      System.out.print("Sie haben Schokolade gewählt");
    
    } else {
      System.out.println("Dieser Artikel existiert nicht");
      } // end of if-else
    
    
    if (kuchen == 2) {
      System.out.println("Sie haben Kuchen gewählt, gute Wahl!");
    } else {
      System.out.println("Dieser Artikel existiert nicht");
      } // end of if-else
  } // end of main

} // end of class expressversandUebung
 
Du brauchst für deine Artikel keine eigenen Variablen. Du kannst doch durch die "eingabe" prüfen, was eingegeben wurde:
Java:
if(eingabe == 1) {
//Schokolade
}
else if(eingabe == 2) {
//Kuchen
}

EDIT: Außerdem brauchst die nicht nach jeder if-Anweisung ein else für "dieser Artikel existiert nicht". Das brauchst du nur zum Schluss:

if()
else if()
else << Hier
 
Funktioniert wie von theqwe beschrieben:
Java:
import java.util.*;
public class expressversandUebung {
 
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String artikel1 = new String("Schokolade");
    String artikel2 = new String ("Kuchen");
    String artikel3 = new String ("Brötchen");
    String artikel4 = new String ("Brot");
    String artikel5 = new String ("Gummibären");
    String artikel6 = new String ("Zuckerstange");
    int schokolade;
    int versand;
    int gesamt;
    int kuchen;
    int eingabe;
    System.out.println("Unsere Artikel sind folgende: " + "1." + artikel1 + " 2." + artikel2 + " 3." + artikel3 + " 4." + artikel4 + " 5." + artikel5 + " 6." + artikel6);
    System.out.print("Geben sie ein welchen Artikel sie wollen: ");
    eingabe = scan.nextInt();
    schokolade = eingabe;
    kuchen = eingabe;
 
    
    
    

    
    if (eingabe == 1) {
      System.out.print("Sie haben " + artikel1 + " gewählt");
    } else if (eingabe == 2) {
      System.out.println("Sie haben " + artikel2 + " gewählt");       
     } else if (eingabe == 3) {
      System.out.println("Sie haben " + artikel3 + " gewählt");
      } else if (eingabe == 4) {
      System.out.println("Sie haben " + artikel4 + " gewählt"); 
       } else if (eingabe == 5) {
      System.out.println("Sie haben " + artikel5 + " gewählt");   
        } else if (eingabe == 6) {
      System.out.println("Sie haben " + artikel6 + " gewählt");     
         }

    
  } // end of main

} // end of class expressversandUebung
 
Sehr gut. Jetzt kannst du noch die nicht gebrauchten Variablen entfernen.

Kurze Frage: Lernt ihr einen String so zu erstellen? Du kannst nämlich auch die Kurzform String variablenamen = "Hier Text"; verwenden. Deine Variante ist nicht falsch! Interessiert micht nur.
 
Sehr gut. Jetzt kannst du noch die nicht gebrauchten Variablen entfernen.

Kurze Frage: Lernt ihr einen String so zu erstellen? Du kannst nämlich auch die Kurzform String variablenamen = "Hier Text"; verwenden. Deine Variante ist nicht falsch! Interessiert micht nur.

Ja, wird uns so gelehrt in der Schule.
so habe ich es jetzt gemacht:
Java:
    String artikel1 = "Schokolade";
    String artikel2 = "Kuchen";
    String artikel3 = "Brötchen";
    String artikel4 = "Brot";
    String artikel5 = "Gummibären";
    String artikel6 = "Zuckerstange";
 
Beispiel mit Array:
Java:
import java.util.*;
public class expressversandUebung {

  public static void main(String[] args) {
    String[] artikel = {"Schokolade", "Kuchen", "Brötchen",
                        "Brot", "Gummibären", "Zuckerstange"};

    Scanner scan = new Scanner(System.in);
    System.out.print("Unsere Artikel sind folgende:");
    for (int i = 0; i < artikel.length; i++) {
        System.out.print(" " + (i+1) + ". " + artikel[i]);
    }
    System.out.println();
    System.out.print("Geben sie ein welchen Artikel sie wollen: ");
    int eingabe = scan.nextInt();

    if (eingabe < 1 || eingabe > artikel.length) {
        System.out.println("Diesen Artikel gibt es nicht.");
    } else {
        System.out.println("Sie haben " + artikel[eingabe-1] + " gewählt.");
    }

  } // end of main

} // end of class expressversandUebung
 

Zurück
Oben