• 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

VPS Starter Arubacloud
–1 głos
231 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ź 147 wizyt
0 głosów
2 odpowiedzi 262 wizyt
0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 15 lutego 2020 w Python przez Sp4rq Użytkownik (790 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...