Moim zadaniem jest stworzenie prostego programu a'la bankomat musi sprawdzać pin i wypłacać wielokrotności 100.
Problem jest ze sprawdzeniem czy pętla w case 2 sprawdzająca czy kwota jaka chcemy wypłacić jest wielokrotności 100. Bez względu na podaną wartość wychodzi z pętli do while. Czy ktoś mógłby podpowiedzieć początkującemu?
import java.io.IOException;
import java.util.*;
public class zadanie1 {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
int pin;
int kodPin=1145;
double stan=750;
int wyplata;
System.out.println("****************************************");
System.out.println("* E-BANKOMAT *");
System.out.println("****************************************");
System.out.println(" Witam w e-bankomacie! \n Podaj 4 liczbowy kod pin: ");
pin=sc.nextInt();
if(pin!=kodPin){
System.out.println("Kod pin jest nieprawidłowy");
System.out.println("Podaj 4 liczbowy kod pin: ");
pin=sc.nextInt();
}
if(pin!=kodPin){
System.out.println("Kod pin jest nieprawidłowy");
System.out.println("Podaj 4 liczbowy kod pin, w przypadku błędnego wpisania kodu karta zostanie zablokowana: ");
pin=sc.nextInt();
}
if(pin!=kodPin){
System.out.println("Bledny kod pin: ");
System.out.println("Karta zostala zablokowana, skontaktuj sie z operatorem bankomatu. \nZakonczono dzialanie programu.");
}
else {
System.out.println("Kod pin prawidłowy. Wybierz jedną z opcji.\n");
System.out.println();
System.out.println(" 1. Stan konta");
System.out.println(" 2. Wypłata pieniedzy");
System.out.println(" 3. Zakonczenie operacji");
Scanner in = new Scanner(System.in);
int w = in.nextInt();
while(w!=0){
switch(w){
case 1: //sprawdzenie salda
System.out.println("****************************************");
System.out.println("* E-BANKOMAT *");
System.out.println("****************************************");
System.out.println("");
System.out.format("Stan konta wynosi " +stan+"zl.\n");
System.out.println("Dziekuje za korzystanie z naszych uslug. \nProsze zabrac karte w ciagu 20 sekund.");
break;
case 2: //wyplata
int kwota;
System.out.println("Podaj jaka kwote chcesz wyplacic. Kwota jaka chcesz wyplacic musi byc wielokrotnoscia 100!");
do { kwota = in.nextInt();
}
while(kwota/100==0);
if(kwota<=stan){ wyplata=(int) (stan-kwota);
stan=stan-wyplata;
System.out.println("Wyplacono "+kwota+"Pozostalo "+stan+".");
if(kwota>stan){
System.out.println("Nie masz wystarczajacych zrodków na koncie.");
}}
System.out.println("Dziekuje za korzystanie z naszych uslug. \nProsze zabrac karte w ciagu 20 sekund.");
System.out.println("");
System.out.println("****************************************");
System.out.println("* E-BANKOMAT *");
System.out.println("****************************************");
break;
case 3: //koniec
System.out.println("****************************************");
System.out.println("* E-BANKOMAT *");
System.out.println("****************************************");
System.out.println("");
System.out.println("Dziekuje za korzystanie z naszych uslug. \nProsze zabrac karte w ciagu 20 sekund.");
break;
}
break;
}}}}