Loading...
deltanov avatar deltanov 5 Точки

Programming Basics with Java - Trade Commissions

Здравейте!

 

Опитвам се да реша задачата Търговски комисионни със switch, но неразбирам защо ми връща само грешки, а ако опитам да подам примерните И/О параметри минава (София/1500 = 120.00). Ето го и кода:

 

import java.util.Scanner;

public class CommissionTrade {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        String city = console.nextLine().toLowerCase();
        Integer volume = Integer.parseInt(console.nextLine());
        //Double quantity = Double.parseDouble(console.nextLine());
        switch (city){
            case "Sofia":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 0.05);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 0.07);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 0.08);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 0.12);

                }
            case "Plovdiv":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 5.5);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 8);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 12);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 14.5);

                }
            case "Varna":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 4.5);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 7.5);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 10);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 13);

                }
        }
    }
}
0
Programming Basics
Kristiyan93 avatar Kristiyan93 34 Точки

Забравил си да брейкнеш,  на всеки кейс трябва да брейкваш

case "Sofia":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 0.05);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 0.07);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 0.08);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 0.12);

                }
Break;

 
0
Kristiyan93 avatar Kristiyan93 34 Точки

Пиша от телефона

Case "stringa" :

Каво да прави;

Break;

Case "str2" :

Направи това;

Break ;

 

0
06/10/2017 23:38:52
deltanov avatar deltanov 5 Точки

Леле, вярно, че съм забравил брейк-а:))) Много мерси!:) 

0
deltanov avatar deltanov 5 Точки

Странно - сложих брейк и пак не върви.... ето го кода сега:

 

import java.util.Scanner;

public class CommissionTrade {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        String city = console.nextLine().toLowerCase();
        Integer volume = Integer.parseInt(console.nextLine());
        //Double quantity = Double.parseDouble(console.nextLine());
        switch (city){
            case "Sofia":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 0.05);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 0.07);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 0.08);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 0.12);

                }
                break;
            case "Plovdiv":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 5.5);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 8);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 12);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 14.5);

                }
                break;
            case "Varna":
                if (0<=volume&&volume<=500) {
                    System.out.printf("%.2f", volume * 4.5);
                }
                else if(500<volume&&volume<=1000 ){
                    System.out.printf("%.2f", volume * 7.5);

                }
                else if(1000<volume&&volume<=10000 ){
                    System.out.printf("%.2f", volume * 10);

                }
                else if(10000<volume ){
                    System.out.printf("%.2f", volume * 13);

                }
                break;
        }
    }
}
0
Kristiyan93 avatar Kristiyan93 34 Точки

може ли линк към джъдж

0
deltanov avatar deltanov 5 Точки

https://judge.softuni.bg/Contests/Practice/Index/153#7

0
Kristiyan93 avatar Kristiyan93 34 Точки

проблема ти е в инпута направил си го с малки букви, а в кейса ти е "София" то не ти влиза в кейса 

или махни toLowerCase или редактирай градовете с малки букви

 

0
Kristiyan93 avatar Kristiyan93 34 Точки

import java.util.Scanner;

/**
 * Created by kristiyan on 25.03.17.
 */
public class p08TradeComissions {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String city = scanner.nextLine();
        double sales = Double.parseDouble(scanner.nextLine());
        double commission = 0;
        if (city.equalsIgnoreCase("Sofia")){
            if (sales > 10000){
                commission = 0.12 * sales;
            }
            else if (sales > 1000 && sales <= 10000){
                commission = 0.08 * sales;
            }
            else if (sales > 500 && sales <= 1000){
                commission = 0.07 * sales;
            }
            else if (sales >= 0 && sales <= 500){
                commission = 0.05 * sales;
            }
        }else {
            System.out.println("error");
        }
        if (city.equalsIgnoreCase("Varna")){
            if (sales > 10000){
                commission = 0.13 * sales;
            }
            else if (sales > 1000 && sales <= 10000){
                commission = 0.10 * sales;
            }
            else if (sales > 500 && sales <= 1000){
                commission = 0.075 * sales;
            }
            else if (sales >= 0 && sales <= 500){
                commission = 0.045 * sales;
            }
        }else {
            System.out.println("error");
        }
        if (city.equalsIgnoreCase("Plovdiv")){
            if (sales > 10000){
                commission = 0.145 * sales;
            }
            else if (sales > 1000 && sales <= 10000){
                commission = 0.12 * sales;
            }
            else if (sales > 500 && sales <= 1000){
                commission = 0.08 * sales;
            }
            else if (sales >= 0 && sales <= 500){
                commission = 0.055 * sales;
            }
        }else {
            System.out.println("error");
        }
        System.out.printf("%.2f", commission);
    }
}

това е мое решение

 

0
deltanov avatar deltanov 5 Точки

Много мерси! И аз тъкмо това установих:))) 

Част от тестовете минаха. Ще боря останалите.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.