• 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

0 głosów
138 wizyt
pytanie zadane 13 stycznia w Java przez ShockOfficial Początkujący (330 p.)
zamknięte 14 stycznia 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 przez Kamil Błaszczyk Obywatel (1,830 p.)
edycja 14 stycznia przez Kamil Błaszczyk
Dużo nauki przed Tobą.
1
komentarz 14 stycznia przez ShockOfficial Początkujący (330 p.)

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

Dzięki

5 odpowiedzi

+1 głos
odpowiedź 14 stycznia przez Kamil Błaszczyk Obywatel (1,830 p.)
wybrane 14 stycznia 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 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 przez Aisekai Nałogowiec (36,150 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()
+1 głos
odpowiedź 14 stycznia przez CyberDevelop Gaduła (4,450 p.)

W 17 linijce uzyj operatora == zamiast =wink

komentarz 16 stycznia przez Kamil Błaszczyk Obywatel (1,830 p.)
Nie to stanowiło tu problem, a porównanie Stringów, które są typu obiektowego.
–1 głos
odpowiedź 13 stycznia przez Wunsz Użytkownik (640 p.)
Weź może użyj uzyt1.equals("Pawel")

Podobne pytania

0 głosów
2 odpowiedzi 86 wizyt
0 głosów
2 odpowiedzi 87 wizyt
pytanie zadane 13 lipca 2018 w C i C++ przez mar123cel Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 88 wizyt
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

64,791 zapytań

111,250 odpowiedzi

233,951 komentarzy

46,683 pasjonatów

Przeglądających: 141
Pasjonatów: 1 Gości: 140

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...