Pomocy z prostym przykładem

0

Cześć uczę się dopiero programować w Javie i chciałbym uzyskać odpowiedź na jak podejrzewam banalne pytanie.
podaje prosty kod bo na nim zobrazuję czego się moje pytanie tyczy

public static void main(String[] args) {

    Random generator = new Random();
    int a = generator.nextInt(101);
    
    Scanner scanner = new Scanner(System.in);
    
    System.out.println("Podaj liczbe");
    int b = scanner.nextInt();
    
    if ( b > a ){
        System.out.println(" wprowadzona liczba jest wieksza od liczby a");
    }
}

Chce sobie zrobic prostą gre ktora w ktorej zgadujemy liczbe. na razie jest burza mozgow i bawienie sie samym jezykiem w celu kombinowania , sprawdzania jak co działa. Jeśli podaje kod
int b = scanner.nextInt(); to rozumiem ze liczba ktora podalismy jest zapisywana do zmiennej. Nastepnie jest kolejna linijka kodu ktorą jest instrukcja warunkowa program powinien do niej przeskoczyć i ją wykonać ale tak się nie dzieje rozumiem ze moze akurat byc wprowadzona liczba mniejsza lub rowna w miedzyczasie ale jesli umieszcze w kodzie if (scanner.nextInt() > b )
to wtedy program zadziała i jesli faktycznie wpisalem wieksza liczbe od wylosowanej to wyswietli napis. Dlaczego tak się dzieje ze w przypadku kiedy przechowuje liczbe wpisana z klawiatury w zmiennej a pozniej to zmienna porownuje to nie działa a kiedy umieszczam instrukcje pobierania z klawiatury bezposrednio w instrukcji if to jest ok ? Dzięki za wytłumaczenie :)

0

Masz na samym początku programu przed deklaracją klasy

"import java.util.Random;
import java.util.Scanner;"

?

Bo jak u siebie wszystko wpisałem to chodzi gładko całkowicie niezależnie jaką liczbę wpiszę to działa jak powinno. Jak większa to pojawia się napis że większa a jak mniejsza to program kończy pracę i się zamyka.

1

Nie bardzo rozumiem, co nie działa. Na ideone.com działa, sprawdź np. dla liczby 200 – https://ideone.com/To2dV0.

1

Jeżeli masz tak jak tam całą bibliotekę java.util.* to powinno działać bez przeszkód. U mnie tylko dopisałem sobie dwie potrzebne do tego rzeczy czyli import java.util.Random;
import java.util.Scanner; i wszystko śmiga. Łapaj jak to u mnie jest, może czymś się różni. Ale spróbuj ten sobie wkleić:

package com.homePractice; //paczka to mniejsza która ważne że swoja

import java.util.Random;
import java.util.Scanner;

class p1 {
    public static void main(String[] args) {

    Random generator = new Random();
    int a = generator.nextInt(101);

    Scanner scanner = new Scanner(System.in);

    System.out.println("Podaj liczbe");
    int b = scanner.nextInt();

    if ( b > a ){
        System.out.println(" wprowadzona liczba jest wieksza od liczby a");
    }
}
    }

Wszystko mi działa spokojnie i NIE MA PROBLEMU ŻADNEGO w tym kodzie, przynajmniej u siebie nie znalazłem. Sprawdź i daj znać.

1

O kurcze faktycznie jest ok. Coś dziwnego musiało się stać. Choć chyba nawet wiem co. SIlv mnie nakierował. Wpisałem 200 i hest ok wczesniej wpisywałem ciagle 77 ( nie wiem czemu tak jakoś ) w sumie to chyba z 15 razy koło. Musiał być niesamowity zbieg okolicznośći ze klasa random wygenerowała ciagle liczby wieksze od mojej ;-/ . przy 200 zawsze wyskakuje. Tak mi się żarówka zapaliła. Teraz czuję się jakbym zgłaszał się z problemem 2 + 2 . No nic dzięki za odpowiedzi z pewnością jeszcze będę potrzebował waszej pomocy. Do zobaczenia programiści :D

0

Tylko pamiętaj żeby zamknąć temat! :D
Spoko loko, takie błędy to na porządku dziennym są ;;--;;

0

Temat do zamknięcia :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1