moje początki nauki i pierwszy problem

0
package com.company;

public class Main {

    public static void main(String[] args) {
    int mandat = ObliczenieMandatu(120);
    wysokoscMandatu("PZL 1585",120,mandat);

    }

    public static void wysokoscMandatu (String numerRejestracyjny, int PredkoscPojazdu, int mandat) {
        System.out.println("Pojazd o numerze rejestracyjnym "+numerRejestracyjny+" przekroczył prędkość o " + PredkoscPojazdu+" i otrzymuję mandat w wsykości "+mandat+" zł" );
    }

    public static int ObliczenieMandatu (int PredkoscPojazdu) {
         if ((PredkoscPojazdu % 50) >= 50 && (PredkoscPojazdu % 50) < 40) {
            return 500;
        }else if ((PredkoscPojazdu % 50) >= 40 && (PredkoscPojazdu % 50) < 30 ) {
            return 400;
        }else if ((PredkoscPojazdu % 50) >= 30 && (PredkoscPojazdu % 50) < 20) {
            return 300;
        }else if ((PredkoscPojazdu % 50) >= 20 && (PredkoscPojazdu % 50) < 10) {
            return 200;
        }else if ((PredkoscPojazdu % 50) >= 10 && (PredkoscPojazdu % 50) < 5 ) {
            return 100;
        }else {
            return 0;
        }


    }
}

Witam uczę się Javy z programu Tima Burtona i po zrobieniu jednego ćwiczenia z kursu postanowiłem zrobić kilka innych odmian przykładu sam, ale natknąłem się na problem który nawet nie jestem w stanie opisać w google aby uzyskać odpowiedź, więc może ktoś będzie na tyle miły i wytknie mi moje braki wiedzy. Otóż sprawa wygląda tak że przy wyrażeniu ((PredkoscPojazdu % 50) >= 10 && (PredkoscPojazdu % 50) < 5 ) mam informację zawsze wynik false , i teraz czy po prostu staram się zrobić coś czego nauczę się w przyszłości i brak mi odpowiedniej wiedzy aby to zadziałało czy może popełniam jakiś błąd logiczny .

2

Chyba wszystkie warunki masz false.
Pytanie: co właściwie chciałeś napisać pisząc (PredkoscPojazdu % 50) ?

% oznacza w javie operację modulo ( reszta z dzielenia)

Czyli np. 10 % 50 to 10. a 65 % 50 to 15.
Jest to jakaś liczba całkowita i nie może być ona jednocześnie większa od 50 i mniejsza od 40 (itd).

2

PredkoscPojazdu % 50) >= 10 && (PredkoscPojazdu % 50) < 5
Masz błąd logiczny bo nie ma takiej liczby która byłaby większa lub równa od 10 i jednocześnie mniejsza od 5.

0

dzięki wielkie, dokładnie ten oczywisty błąd umknął mi uwadze, choć pojawił się kolejny bo jeśli wpiszę 120 jako prędkosć a norma jest ustawiona na 50 to używając % nie jestem w stanie uzyskać 70 gdyż 120 % 50 = 20 , ale to już problem innej materii za odpowiedź bardzo dziękuje

0
Caspu napisał(a):

dzięki wielkie, dokładnie ten oczywisty błąd umknął mi uwadze, choć pojawił się kolejny bo jeśli wpiszę 120 jako prędkosć a norma jest ustawiona na 50 to używając % nie jestem w stanie uzyskać 70 gdyż 120 % 50 = 20 , ale to już problem innej materii za odpowiedź bardzo dziękuje

Dostałeś że już radę od @jarekr000000 , że modulo jest niewłaściwe. Widzę, że nie chcesz uwzględnić, i przejść na (jakże prozaiczne) odejmowanie

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