Jak to przerwać

Odpowiedz Nowy wątek
2019-11-07 22:32

Rejestracja: 10 miesięcy temu

Ostatnio: 2 miesiące temu

0
import java.util.Scanner;

public class Zadanie4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Podaj nr konta: ");
        int nr = scanner.nextInt();
        System.out.println("wprowadziles nr = " + nr);
        int dobryNr = 1234;
        if (nr == 1234) {
            System.out.println("Dobry nr konta, wprowadz pin: ");
        } if (nr <1234 || nr>1234 ){
            System.out.println("zły nr");
**            // ---- TUTAJ CHCE DODAC break; ale nie dziala ;d**
            }
        int pin = scanner.nextInt();
        int dobryPin = 4321;
        System.out.println("Wprowadziłeś pin: " + pin);
        if (pin == 4321) {
            System.out.println("dobry pin, logowanie");
        } else {
            System.out.println("zły pin");
        }
    }
}

Jesli uzytkownik poda cos zle chce przerwac program, co jesli zle w tym break =/

edytowany 1x, ostatnio: ZoooL, 2019-11-07 22:33
Dlaczego nie użyjesz else, tylko się meczysz z jakimś ifem mniejszy-większy? - jackweb 2019-11-07 22:46

Pozostało 580 znaków

2019-11-07 22:38

Rejestracja: 10 lat temu

Ostatnio: 30 minut temu

0

Nie używaj break, jeżeli nie jesteś w switchu ani w pętli. Użyj natomiast System.exit(0); a w tym wypadku return;

Pozostało 580 znaków

2019-11-07 22:52

Rejestracja: 1 rok temu

Ostatnio: 2 minuty temu

Lokalizacja: Silesia

3

użyj return i przy okazji zmień kolejność ifów:

if (nr != 1234) {
    System.out.println("zły nr");
    return;
}
System.out.println("Dobry nr konta, wprowadz pin: ");

Ogólnie lepiej na początek sprawdzić wszystkie niepoprawne warunki (czyli przeprowadzić walidację) a potem pisać kod tylko dla poprawnych wartości


edytowany 1x, ostatnio: KamilAdam, 2019-11-07 22:52

Pozostało 580 znaków

2019-11-08 18:46

Rejestracja: 10 miesięcy temu

Ostatnio: 2 miesiące temu

0

@up dzieki działa.
Myślałem że return służy tylko do zwracania danych z metod, jak rozumieć to return?
i return i System.exit działa czemu lepsze return w tym wypadku?

Pozostało 580 znaków

2019-11-08 20:40

Rejestracja: 1 rok temu

Ostatnio: 6 godzin temu

0
ZoooL napisał(a):

Myślałem że return służy tylko do zwracania danych z metod, jak rozumieć to return?
i return i System.exit działa czemu lepsze return w tym wypadku?

Return zwraca sterowanie, a System.exit(0) kończy działanie programu.

Pozostało 580 znaków

2019-11-09 12:30
Moderator

Rejestracja: 16 lat temu

Ostatnio: 16 minut temu

0

Return oznacza wyjście z aktualnej funkcji i zwrócenie wartości. Jeśli funkcja nic nie zwraca to po prostu wyjdziesz z funkcji.
Wyście z main kończy program.
System.exit zabija jvm i generalnie trzeba używać przezornie.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

Odpowiedz

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