java zurück befehl

jonasjav

Mitglied
hallo
ich bin neu hier ich hab mit der java programmierung unter eclipse angefangen und ich hab folgende frage wie kann ich einen zurück befehl programmieren hier ist ein beispiel:
Java:
import java.util.Scanner;
 public class backbuton {
   public static void main(String args[])
{//hier will ich wider zurück hin
System.out.println("hallo sie sind im haupt menü");
System.out.println("1drücken um ins untermenü zukommen");
Scanner inscan2= new Scanner (System.in);
int in2=inscan2.nextInt();
if (in2==1)
{ 
//das ist das unter menü
 System.out.println("wilkommen im untermenü");
Scanner inscan= new Scanner (System.in);
int in=inscan.nextInt();
System.out.println("1drücken um zurück zugelangen");
if (1==in){
//hier soll der befehl um wider zurück zukommen rein ;
}
}
}
}
edit// ich habs noch mal verändert jetzt ist es richtig
das ist nur ein kleiner ausschnit daraus
ich mein das ich eine "etage" wider hochkomme
 
Zuletzt bearbeitet:
Ich verstehe dein Problem nicht so ganz, bitte ausführliche Erklärung. Warum soll er wieder hoch, was soll das bringen ? und bei welcher Anweisung ?
 
Ergibt irgendwie keinen Sinn. Was hast du denn vor? Wenn 1 eingelesen wurde, soll dann wieder eine neue Zahl eingelesen werden? Aber was passiert, wenn eine andere Zahl eingelesen wurde? Und dann noch diverse Sachen:

Java:
1==in

Fragst du auch "ist 1 gleich x" oder "ist x gleich 1"?

Und Sprungbefehle gibt es in Java eigentlich nicht. Es gibt solche Sachen wie continue und break, aber dafür muss man dann erst mal mit Schleifen umgehen können und dann kann man es meistens auch anders lösen.
 
Java:
    public static void main(String[] args)
    {
        Scanner inscan = new Scanner(System.in);
        int in;
        while ((in = inscan.nextInt()) == 1)
        {
            System.out.println("Die eingelesen Zahl ist: " + in);
        }
    }

Tut glaube ich das, was du wolltest.^^
Aber schau dir halt Schleifen an, sonst wirst du das nicht selbst lösen können.
 
ne das meine ich nicht, kopiert euch mein "kleines menü" mal bei euch rein und führt es dann aus, dann merkt ihr wahrscheinlich was ich meine

kleines Menü:
Java:
import java.util.Scanner;
 public class backbuton {
   public static void main(String args[])
{//hier will ich wider zurück hin
System.out.println("hallo sie sind im haupt menü");
System.out.println("1drücken um ins untermenü zukommen");
Scanner inscan2= new Scanner (System.in);
int in2=inscan2.nextInt();
if (in2==1)
{ 
//das ist das unter menü
 System.out.println("wilkommen im untermenü");
System.out.println("1drücken um zurück zugelangen");
Scanner inscan= new Scanner (System.in);
int in=inscan.nextInt();

if (1==in){
System.out.println("hier soll der befehl rein");
//hier soll der befehl um wider zurück zukommen rein ;
}
}
}
}
 
naja ... wie gesagt : sowas macht man mit LOOPS !

es gibt in java kein "GOTO" wie es z.b. in nem MS-DOS-Batch-file möglich ist ...
und selbst wenn wäre es auf ASM runtergebrochen auch nur n JMP ... und sowas macht man eben mit loops ... das man halt sagt : wenn der code bis hier hin gelaufen ist läuft eher wieder von oben ... direkt in eine gewisse ziele springen geht nur auf sehr tiefen low-level sprachen ...
 
naja ... wie gesagt : sowas macht man mit LOOPS !

es gibt in java kein "GOTO" wie es z.b. in nem MS-DOS-Batch-file möglich ist ...
und selbst wenn wäre es auf ASM runtergebrochen auch nur n JMP ... und sowas macht man eben mit loops ... das man halt sagt : wenn der code bis hier hin gelaufen ist läuft eher wieder von oben ... direkt in eine gewisse ziele springen geht nur auf sehr tiefen low-level sprachen ...

also geht das nicht oder
wie gehen die loops?
edit// ich hatte von nem bekannten erfahren das man das machen könnte indem man mit einem befehl in eine andre main wechseln und in der methode steht widerruhm ein befehl der dann widerrum in die andre main wechselt
 
Zuletzt bearbeitet:
Warum methodisierst du das ganze nicht ein wenig?
Die Aufrufe werden so zwar gestapelt (kriegt man sicher schöner hin), aber ich denke das ist vernachlässigbar:

Java:
public class Menu {
	public static void main(String args[]) {
		mainMenu(new Scanner(System.in));
	}
	private static void mainMenu(Scanner scanner) {
		System.out.println("hallo sie sind im haupt menü");
		System.out.println("1drücken um ins untermenü zukommen");
		System.out.println("2 um zu beenden");
		
		int i = readAcceptedInt(scanner, 1, 2);
		if(i == 1) {
			subMenu(scanner);
		} else if(i == 2) {
			Runtime.getRuntime().exit(0);
		}
	}
	private static void subMenu(Scanner scanner) {
		System.out.println("wilkommen im untermenü");
		System.out.println("1 drücken um zurück zugelangen");
		
		int i = readAcceptedInt(scanner, 1);
		if(i == 1) {
			mainMenu(scanner);
		}
	}
	private static int readAcceptedInt(Scanner scanner, int... accepteds) {
		do {
			int i = scanner.nextInt();
			
			for(int j:accepteds) {
				if(i == j) {
					return(i);
				}
			}
		} while(true);
	}
}
 
Glaskugel sagt, TO weiss nicht, wie man Menüs aufbaut...
Code:
mainMenu() {
  boolean exit = false;
  while(!exit) {
    printMenupunkt();
    menupunkt = default;
    do {
      switch(menupunkt) {
      case 1:
        call menu1();
        menupunkt = default;
        break;
      case 2:
        call menu2();
        menupunkt = default;
        break;
      case 0:
        exit = true;
        break;
      default:
        menupunkt = scanEingabe();
      }
    } while(menupunkt == default);
  }
  // programm exit
}

menu1() {
  boolean exit = false;
  while(!exit) {
    printMenupunkt(); // per System.out
    menupunkt = default;
    do {
      switch(menupunkt) {
      case n:
        doWorkN();
        menupunkt = default;
        break;
      case 0:
        exit = true;
        break;
      default:
        menupunkt = scanEingabe();
      }
    } while(menupunkt == default);
  }
  return; // zurueck ins mainMenu
}

menu2() {
  boolean exit = false;
  while(!exit) {
    printMenupunkt();
    menupunkt = default;
    do {
      switch(menupunkt) {
      case n:
        doWorkN();
        menupunkt = default;
        break;
      case 0:
        exit = true;
        break;
      default:
        menupunkt = scanEingabe();
      }
    } while(menupunkt == default);
  }
  return; // zurueck ins mainMenu
}
BTW.: "default" heisst in diesem Fall "ungültige Eingabe".
 
Zuletzt bearbeitet von einem Moderator:
also geht das nicht oder
wie gehen die loops?
edit// ich hatte von nem bekannten erfahren das man das machen könnte indem man mit einem befehl in eine andre main wechseln und in der methode steht widerruhm ein befehl der dann widerrum in die andre main wechselt

OUCH ... was soll das denn ? das endet nachher nur in nem StackOverflow ...

und ganz erlich ... du bist NICHT in der lage selbst deinen browser zu öffnen ... google aufzurufen ... und dort "java loops" bzw "java schleifen" einzugeben ? wenn das wirklich deinem wissensstand entsprechen sollte ... lass lieber die finger vom programmieren und lerne erstmal wie man aus einem forum-post die wichtigen stichworte erfasst und mit diesen selbst ne passende lösung für sein problem sucht und findet ...

es macht keinen sinn wenn dir jemand alles vormacht und du es dann nicht verstehst weil du es nicht mal kennst ob wohl gerade sowas wie loops elementare grundbestandteile einer jeden programmier-sprache sind ...
 

Neue Themen


Zurück
Oben