• 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
136 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 fisker Bywalec (2,340 p.)
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 (32,070 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,400 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 85 wizyt
0 głosów
2 odpowiedzi 85 wizyt
pytanie zadane 13 lipca 2018 w C i C++ przez mar123cel Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 86 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

63,166 zapytań

109,402 odpowiedzi

228,554 komentarzy

42,675 pasjonatów

Przeglądających: 120
Pasjonatów: 10 Gości: 110

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.

...