Menü

Status
Nicht offen für weitere Antworten.

Alsou

Aktives Mitglied
Hallo, ich komme mit einer Aufgabe nicht mehr weiter... ich muss ein Programm schreiben, dass folgende Menüpunkte hat: 1. 2 Zahlen eingeben
2. Addition
3. Subtraktion
4. Multiplikation
5. Division
6.Ende
Das Programm soll zwei Zahlen einlesen und der Benutzer soll die Möglichkeit haben unterschiedliche Grundrechenarten wählen zu können..
Man muss erst Zahlen eingeben-sonst Fehlermeldung und Programm endet nach der Eingabe des Menüpunktes 6.

Mein Programm funktioniert nicht... vlt kann mir jemand erklären...Danke


Java:
*import java.until.Scanner;
 */
public class quer {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner eingabe=new Scanner (System.in);
		 
		
		
		
		
		  
	
	        System.out.println("Hallo, Sie haben folgende Menüpunkte zur Auswahl:");
		    System.out.println(" 1. Zwei Zahlen a und b eingeben");
		    System.out.println("2. Addition, a+b");
		    System.out.println("3. Subtraktion, a-b");
		    System.out.println("4. Multiplikation, a+b");
		    System.out.println("5. Division, a/b");
		    System.out.println("6. Ende");
		    System.out.println("Geben Sie Ihren Menüpunkt ein");
		    
		    String menuepunkt=eingabe.next("eins");
		    if (menuepunkt!="") 
		   {
			   System.out.println ("Falsche Eingabe");
		   }
			   else
			   {
				   System.out.println("Geben Sie die erste Zahl ein:");
				   int zahl1=eingabe.nextInt();
				   System.out.println("OK. Und nun die zweite Zahl:");
				   int zahl2=eingabe.nextInt();
				   System.out.println("Wählen Sie weiteren Menuepunkt aus:");
				   
				   if (menuepunkt== "zwei")
				   { System.out.println("Das Ergebnis ist:"+zahl1+"+" +zahl2+"="+ (zahl1+zahl2));
				   if (menuepunkt=="drei")
				   { System.out.println("Das Ergebnis ist:"+zahl1+"-"+zahl2+"=" +(zahl1-zahl2));
				   if (menuepunkt=="vier")
				   { System.out.println("Das Ergebnis ist:" +zahl1+"*"+zahl2+"="+(zahl1+zahl2));
				   if (menuepunkt=="fuenf")
				   { System.out.println("Das Ergebnis ist:"+zahl1+"/"+zahl2+"="+(zahl1/zahl2));
				   if (menuepunkt=="sechs")
				   { System.out.println("Ende");
				   
				   }
				   }
				   
				   }
				   }
				   }
			   }
		    
				
		
		
	
	}
	}
 
Zuletzt bearbeitet von einem Moderator:
du must strings mit equals() vergleichen nicht mit "=="
also menuepunkt.equals("eins"); beziehungsweise noch besser "eins".equals(menuepunkt); (schutz vor nullpointer-exception)
aber warum nimmst du nicht einfach ints statt "eins","zwei",...
 
Zuletzt bearbeitet:
Vorerst mal - WAS funktioniert nicht?

Was mir beim Überfliegen des Codes aufgefallen ist:

Bei
[java=38]
System.out.println("Wählen Sie weiteren Menuepunkt aus:");
[/code]

lest du nichts mehr vom Benutzer ein. Folglich wird da auch nichts mehr gemacht, da dadurch die Bedienungen false ergeben.

Strings vergleich man übrigens nicht mit == sondern mit string1.equals(string2), da Strings objekte sind!
 
Danke, für den Tipp... Wenn ich irgendwelche Werte eingebe - funktioniert das Programm nicht... wieso ergeben sich die Bedingungen false??
 
das wird ausgegeben...


Hallo, Sie haben folgende Menüpunkte zur Auswahl:
1. Zwei Zahlen a und b eingeben
2. Addition, a+b
3. Subtraktion, a-b
4. Multiplikation, a+b
5. Division, a/b
6. Ende
Geben Sie Ihren Menüpunkt ein
 
Wie schon gesagt, beim Code den du oben gepostest hast kommt bei Zeile 38 die Frage "Wählen Sie weiteren Menuepunkt aus:", allerdings lest du danach nichts vom Benutzer ein. Dadurch steht dann in der Variable menuepunkt noch das "eins" von vorher und die weiteren Abfragen werden wohl false ergeben.
 
hab bei der Zeile 38 "String menue=eingabe.next("zwei");" eingefügt... funktioniert trotzdem nicht(((
 
ich vermute dass bei deinen Leseaufrufen der Parameter zum Problem wird.
Java:
 String menue=eingabe.next("zwei");
"zwei" wird in diesem Fall als Pattern interpretiert.
Versuch mal, dass eben wegzulassen, also nur
Java:
String menue=eingabe.next();
und dann falls es nötig ist händisch zu überprüfen ob der eingegebene Wert gültig ist

bei deinem ersten Eingabeaufruf weiter oben, musst du dann das "eins" ebenfalls entfernen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben