• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Program nie działa tak jak powinien

Object Storage Arubacloud
–1 głos
232 wizyt
pytanie zadane 13 stycznia 2019 w Java przez ShockOfficial Początkujący (390 p.)
zamknięte 14 stycznia 2019 przez ShockOfficial

Cześć!
Sprawdzałem sam siebie pisząc sobie poszczególne linijki kodu wszystko szło dobrze, lecz nie wiem dlaczego program jakby nie sprawdza warunku tylko idzie dalej cały czas do warunku gdy uzyt = true ( pomimo ze jest false).
 

if (uzyt1 == "Pawel") {
            System.out.println("Witaj Pawle!");
            uzyt = true;
        }

Proszę o sprawdzenie kodu i wyjaśnienie co zrobiłem nie tak blush
 

import java.util.Scanner;

public class Pliki {
    static boolean uzyt = false;

    public static void main(String[] args) {
        String uzyt1;
        System.out.println("Witamy w Banku");
        System.out.println("Podaj swoje imie:");
        Scanner Ouzyt = new Scanner(System.in);
        uzyt1 = Ouzyt.nextLine();

        if (uzyt1 == "Pawel") {
            System.out.println("Witaj Pawle!");
            uzyt = true;
        }
        if (uzyt = true) {
            System.out.println("Podaj ile chcesz wyplacić: ");

            wyplac Pawel = new wyplac();
            System.out.println("Masz obecnie: " + Pawel.hajs + "$");
            System.out.println("Wyplacasz obecnie: " + Pawel.pay);

            Pawel.licz();
        } else {
            System.out.println("Ten bankomat jest tylko dla Pawla!");
        }

    }
}

class wyplac {

    int hajs = 60000000;
    String owner;
    Scanner odczyt = new Scanner(System.in);
    int pay = odczyt.nextInt();

    void licz() {
        hajs = hajs - pay;
        System.out.println("Masz teraz: " + hajs);
    }
}

Pozdro!

komentarz zamknięcia: Mój problem został rozwiązany.
komentarz 14 stycznia 2019 przez kejm_ Bywalec (2,310 p.)
edycja 14 stycznia 2019 przez kejm_
Dużo nauki przed Tobą.
1
komentarz 14 stycznia 2019 przez ShockOfficial Początkujący (390 p.)

Całe szczęście zacząłem teraz. laugh

Dzięki

4 odpowiedzi

+1 głos
odpowiedź 14 stycznia 2019 przez kejm_ Bywalec (2,310 p.)
wybrane 14 stycznia 2019 przez ShockOfficial
 
Najlepsza
import java.util.Scanner;

public class Files{

    public static void main(String[] args){

        System.out.println("Witamy w Banku");
        System.out.println("Podaj swoje imie:");

        Scanner load = new Scanner(System.in);
        String randomUser = load.nextLine();

        if (!("Pawel".equals(randomUser))) {
            System.out.println("Ten bankomat jest tylko dla Pawla!");
        } else {
            System.out.println("Witaj Pawle!");
            System.out.println("Podaj ile chcesz wyplacić: ");

            Wyplac Pawel = new Wyplac();
            System.out.println("Masz obecnie: " + Pawel.hajs + "$");
            System.out.println("Wyplacasz obecnie: " + Pawel.pay);

            Pawel.licz();
        }
    }
}

class Wyplac {
    int hajs = 5000;
    String owner;
    Scanner load = new Scanner(System.in);
    int pay = load.nextInt();

    void licz() {
        hajs = hajs - pay;
        System.out.println("Masz teraz: " + hajs);
    }
}

Na szybkości łap, ale weź do ręki "Czysty kod".

+1 głos
odpowiedź 13 stycznia 2019 przez niezalogowany
ja to się w ogóle nie znam na Javie ,ale wydaje mi się że jest czeski błąd w 17 linijce przypisanie zamiast porównania

a i jeszcze bym dodał w 24 linijce uzyt = false;
+1 głos
odpowiedź 14 stycznia 2019 przez Aisekai Nałogowiec (42,190 p.)
Porównując obiekty  operator '==' służy do sprawdzania, czy obiekty (a właściwie ich referencje) wskazują na ta samą komórkę pamięci (na stercie) . Słabo się to ma do sprawdzania obiektów, bo tworząc nowy obiekt, zostaje zaalokowana pamięć na nowo (w innych komórkach pamięci będzie przechowywana informacja na temat tego obiektu).

Do porównywania, czy obiekty są równe (w sensie wartości pól) służy metoda .equals()
0 głosów
odpowiedź 13 stycznia 2019 przez Wunsz Użytkownik (680 p.)
Weź może użyj uzyt1.equals("Pawel")

Podobne pytania

+1 głos
1 odpowiedź 149 wizyt
0 głosów
2 odpowiedzi 263 wizyt
0 głosów
1 odpowiedź 231 wizyt
pytanie zadane 15 lutego 2020 w Python przez Sp4rq Użytkownik (790 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...