• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc przy pętli przy podaniu złych danych

Object Storage Arubacloud
0 głosów
362 wizyt
pytanie zadane 3 maja 2017 w Java przez fiszu258 Początkujący (440 p.)
edycja 3 maja 2017 przez fiszu258

Cześć ponownie, próbuję zrobić zadanie ( zawarte w kodzie jako komentarz) proszę o sprawdzenie oraz pomoc przy punkcie : ,,a w przypadku błędu pytać prosić użytkownika ponownie o podanie danych.,,. Nie mam pojęcia jak skonstruować daną pętlą oraz jeszcze pytanie kiedy w if wstawiamy || a kiedy &&. Z góry dzięki :)


import java.util.Scanner;

/**
 * Created by Dominik on 02.05.2017.
 */

//5. W sklepie ze sprzętem AGD oferowana jest sprzedaż ratalna. Napisz program
//umożliwiający wyliczenie wysokości miesięcznej raty za zakupiony sprzęt. Danymi
//wejściowymi dla programu są:
//• cena towaru (od 100 zł do 10 tyś. zł),
//• liczba rat (od 6 do 48).
//Kredyt jest oprocentowany w zależności od liczby rat:
//• od 6–12 wynosi 2.5% ,
//• od 13–24 wynosi 5%,
//• od 25–48 wynosi 10%.
//Obliczona miesięczna rata powinna zawierać również odsetki. Program powinien
//sprawdzać, czy podane dane mieszczą się w określonych powyżej zakresach, a w
//przypadku błędu pytać prosić użytkownika ponownie o podanie danych.

public class Zadanie_5 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("Proszę podać cene towaru:");
        double cena = s.nextDouble();
        if (cena < 100 || cena > 10000) {
            System.out.println("Raty są dostępne od 100 do 10000zł");
        } else {


            System.out.println("Podaj liczbe rat od od 6 do 48");
            int raty = s.nextInt();
            if (raty < 6 || raty > 48) {
                System.out.println("Bank rozkłada raty od 6 do 48 rat");
                System.out.println("Podaj dane jeszcze raz");
            } else {
                if (raty >= 6 && raty <= 12) {
                    cena = ((cena / raty) * 0.025) + (cena / raty);
                    System.out.println("miesięczna rata = " + cena);
                } else if (raty >= 13 && raty <= 24) {
                    cena = ((cena / raty) * 0.05) + (cena / raty);
                    System.out.println("miesięczna rata = " + cena);
                } else if (raty >= 25 && raty <= 48) {
                    cena = ((cena / raty) * 0.10) + (cena / raty);
                    System.out.println("miesięczna rata = " + cena);
                } else
                    System.out.println("Wprowadzono błędne dane");

            }
        }
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 3 maja 2017 przez Codeboy Stary wyjadacz (12,120 p.)
wybrane 3 maja 2017 przez fiszu258
 
Najlepsza

Zamień ify po prostu na pętle while, które będą wczytywać dane dopóki nie dostaną prawidłowych. 
|| i && to zwykłe operatory matematyczne. || - "lub", a && - "i". Jeśli byłeś kiedyś na matematyce to chyba wiesz co to hm? ;)

Tu twój kod z tymi pętlami, przeanalizuj sobie jak to działa:

Scanner s = new Scanner(System.in);
        System.out.print("Proszę podać cene towaru:");
        double cena = s.nextDouble();
        
        while (cena < 100 || cena > 10000) {
            System.out.println("Raty są dostępne od 100 do 10000zł");
            System.out.println("Podaj dane jeszcze raz");
            cena = s.nextDouble();
        }
       
        System.out.println("Podaj liczbe rat od od 6 do 48");
        int raty = s.nextInt();
        while (raty < 6 || raty > 48) {
            System.out.println("Bank rozkłada raty od 6 do 48 rat");
            System.out.println("Podaj dane jeszcze raz");
            raty = s.nextInt();
        }
            
        if (raty >= 6 && raty <= 12) {
            cena = ((cena / raty) * 0.025) + (cena / raty);
            System.out.println("miesięczna rata = " + cena);
        } else if (raty >= 13 && raty <= 24) {
            cena = ((cena / raty) * 0.05) + (cena / raty);
            System.out.println("miesięczna rata = " + cena);
        } else if (raty >= 25 && raty <= 48) {
            cena = ((cena / raty) * 0.10) + (cena / raty);
            System.out.println("miesięczna rata = " + cena);
        } else
            System.out.println("Wprowadzono błędne dane");

 

Podobne pytania

0 głosów
3 odpowiedzi 166 wizyt
pytanie zadane 23 lipca 2017 w PHP przez Ardzej16 Początkujący (450 p.)
+1 głos
2 odpowiedzi 113 wizyt
0 głosów
1 odpowiedź 609 wizyt
pytanie zadane 11 listopada 2016 w C i C++ przez Ayaka Nowicjusz (170 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...