odpowiednik goto z C++ w javie

0

Mam do napisania pracę zaliczeniową na semestr.
Praca ma być wykonana w języku Java na konsoli.
Mam problem z odwoływaniem się do poszczególnych miejsc w programie.
na razie napisałem tyle:

import java.io.*;
class przelicznik_jednostek_ukladu_SI // deklaracja nazwy klasy zgodna z nazwą pliku

{

public static void main(String args[]) throws IOException

{


	{

	System.out.println("Ten program sluzy do przeliczania jednostek ukladu SI");
	
	System.out.println("");
	System.out.println("Wybierz kategorie jednostek ktore chcesz przeliczc:");
	System.out.println("");
	System.out.println("");
	System.out.println("");

// chce wrócić własnie tutaj
System.out.println("0. Objetosc");
System.out.println("1. Dlugosc");
System.out.println("2. Masa");
System.out.println("3. Energia");
System.out.println("4. Moc");
System.out.println("5. Czas");
System.out.println("6. Predkosc");
System.out.println("7. Powierzchnia");
System.out.println("8. Komputerowe");
System.out.println("9. Cisnienie");
}
int opcja = System.in.read(); //deklaracja zmiennej pocja typu int i odczyt znaku z klawiatury

    	switch (opcja) //określenie skąd ma być brana wartość dla metody switch
		{
		case '0':
		System.out.println("Przeliczanie jednostek Objetosci"); break;
		case '1':
		System.out.println("Przeliczanie jednostek  Dlugosci"); break;
		case '2':
		System.out.println("Przeliczanie jednostek  Masy"); break;
		case '3':
		System.out.println("Przeliczanie jednostek  Energi"); break;
		case '4':
		System.out.println("Przeliczanie jednostek  Mocy"); break;
		case '5':
		System.out.println("Przeliczanie jednostek  Czasu"); break;
		case '6':
		System.out.println("Przeliczanie jednostek  Predkosci"); break;
		case '7':
		System.out.println("Przeliczanie jednostek  Powierzchni"); break;
		case '8':
		System.out.println("Przeliczanie jednostek  Komputerowych"); break;
		case '9':
		System.out.println("Przeliczanie jednostek  Cisnienia"); break;

		default:
		System.out.println("Zla wartosc. Wybierz opcjw od 0 do 9"); break;
        } // koniec switch

		  switch(opcja)
		  	{
			case '1':
                            wróć do menu

// gdy dojdę tutaj chcę wrócić ...^

			}

}

}

}

mój problem polega na tym że nie wiem jak po wyborze case 1 w sytuacji gdy zostanie wybrana pocja z pozazakresu 0-9 wrócić do miejsca wyboru opcji.
jest jakaś funkcja która to robi?? coś jak goto z c++.
jeżeli tak to proszę o prosty przykład działaniaowej funkcji i ewentualnie wymaganą biblioteke do niej .

0

Pętla?

0

może etykieta? czy jak to się tam nazywa :P
np:

out: //etykieta
for(....){
for{
for{
if(...)
continue out; // wraca ci do pierwszej petli
}
}
}

jeśli się nie mylę to tak to działa :P

0

jak tylko wrócę do domu to sprawdze

0

NIE MA ODPOWIEDNIKA GOTO!!!

Java jest językiem obiektowym, a nie proceduralnym jak c (bez cpp bo ten jest obiektowy).
Rozwiązanie poglądowe:

public class App{
   public static void main(String [] a){
     // wypisz informację
     while(true){
     // wypisz opcje
        char opcja = System.in.read();
        switch(opcja){
            case '0':
                  metoda0();
                  break;
            //kolejne elementy
            case 'e':
                 System.out.println("Do widzenia");
                 System.exit(0);
            //....
        }
     }

     private void metoda0(){
         //....
     }
     //.....
  }

}

pokombinuj jeszcze, bo jezeli chcesz zaliczyć to trzeba się postarać

0

Michu ma rację, można łączyć instrukcje typu break/continue z nazwą etykiety. To jedyna namiastka "goto" w Javie.
To czasem wygodny sposób na ucieczkę z bardzo "głębokiego" zestawu pętli. W ogólności jednak nie zaleca się nadużywania takiej konstrukcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1