Java: do-While-Schleife-Problem |
18.02.2010, 13:44 | Auf diesen Beitrag antworten » |
mathelover | Java: do-While-Schleife-Problem Hallo liebe Boardies ich habe ein Problem. Ich versuche schon die ganze Zeit eine do-while-Schleife in mein Java-Programm einzubauen, damit ich durch Eingabe zurück ins Menu gelangen kann. Könntet ihr mal ein Blick drauf werfen bitte. Ich komme wirklich nicht weiter. Vielen Dank im Voraus Mit freundlichen Grüßen mathelover import java.util.Scanner; public class GGTkGV{ // Anfang Attribute // Ende Attribute // Anfang Methoden public static void main (String [] args) { Scanner tastatur = new Scanner (System.in); String m,e,f,menu=""; char methode,eingabe='a',eingabe2='B'; do { System.out.print("\n.:::Wilkommen im Menü:::.\n"); System.out.print("\nWelche Methode möchten Sie wählen EUKLID oder NICOMACHUS [E/N]"); m = tastatur.next(); methode = m.charAt(0); if (methode == 'E'){ do { int zahl1, zahl2,merker,erg=1,z1,kgv,zusammen; System.out.print("\n\nSie nutzen die EUKLID-Methode\nBitte geben Sie zwei positive ganze Zahlen ein!"); zahl1 = tastatur.nextInt(); zahl2 = tastatur.nextInt(); zusammen=zahl1*zahl2; if ( zahl1 < zahl2){ merker = zahl2; zahl2 = zahl1; zahl1 = merker; } System.out.print("\n\nDivisionrestmethode: ggT von "+zahl1+" und "+zahl2+" "); while(zahl2!=0){ erg = zahl2; z1=zahl2; zahl2 = zahl1%zahl2; zahl1=z1; } System.out.print("\n\nggT="+erg+""); kgv=zusammen/erg; System.out.print("\n\nkgv="+kgv+""); System.out.print("\n\nMöchten Sie zwei weitere Zahlen eingeben[J/N]?\n\nOder möchten Sie zurück ins Menü gelangen [menu]"); e = tastatur.next(); eingabe = e.charAt(0); menu = tastatur.next(); } while (eingabe == 'J'); } else { do { int zahl1,zahl2=1,erg=1,merker,z1,blub=1,zusammen,kgv; System.out.print("\n\nSie nutzen die NICOMACHUS-Methode\nBitte geben Sie zwei positive ganze Zahlen ein!"); zahl1 = tastatur.nextInt(); zahl2 = tastatur.nextInt(); if ( zahl1 < zahl2){ merker = zahl2; zahl2 = zahl1; zahl1 = merker; } System.out.print("\n\nSubtraktionsmethode: ggT von "+zahl1+" und "+zahl2+" "); zusammen=zahl1*zahl2; while (blub!=0){ erg = blub; blub = zahl1-zahl2; if (blub < zahl2) { merker = blub; zahl1 = zahl2 ; zahl2 = merker; } else { zahl1 = blub; } } System.out.print("\n\nggT="+erg+""); kgv = zusammen/erg; System.out.print("\n\nkgv="+kgv+""); System.out.print("\n\nMöchten Sie zwei weitere Zahlen eingeben[J/N]?\n\nOder möchten Sie zurück ins Menü gelangen [menu]"); f = tastatur.next(); eingabe2 = f.charAt(0); menu = tastatur.next(); } while (eingabe2 == 'J'); } } while (menu == "menu"); } // Ende Methoden } |
|
|
18.02.2010, 18:45 | Auf diesen Beitrag antworten » |
David_pb | Ich rat mal: Du vergisst bei der äußersten Schleife "menu" mit einer gültigen Eingabe zu füllen?! |
24.02.2010, 16:09 | Auf diesen Beitrag antworten » |
ed209 | Pass auf beim Vergleichen von Strings. menu == "J" fragt ab ob es sich um dasselbe Object handelt. Mit menu.equals("J") kannst du abfragen ob die Werte von (moeglicherweise) verschiedenen Objekten gleich sind. Das ist anders als z.B. bei C# Gruß, ED209 |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|