Loading...
chaneto avatar chaneto -1 Точки

Hotel Room - Дава ми 80/100, без пояснения къде греша.

package vlojeniuslovnikonstrukci;

import java.util.Scanner;

public class CLASS10hotelroom {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String m = scanner.nextLine();
        double n = Double.parseDouble(scanner.nextLine());
        if (n>7 && n<=14 && m.equals("May")||(m.equals("October"))){
            System.out.printf("Apartment: %.2f lv.%n", n * 65);
            System.out.printf("Studio: %.2f lv.", n *(50 - 50 * 0.05));
        }else if (n>14 && m.equals("May")||(m.equals("October"))){
            System.out.printf("Apartment: %.2f lv.%n", n * (65 - 65 * 0.10));
            System.out.printf("Studio: %.2f lv.", n * (50 - 50 * 0.30));
        }else if(n>14 && m.equals("June") || m.equals("September")){
            System.out.printf("Apartment: %.2f lv.%n", n * (68.7-68.7 * 0.10));
            System.out.printf("Studio: %.2f lv.", n * (75.2 - 75.2 * 0.20));
        }else if(n>14 && m.equals("July")||m.equals("August")){
            System.out.printf("Apartment: %.2f lv.%n", n * (77-77 * 0.10));
            System.out.printf("Studio: %.2f lv.", n * 76);
        }else if (m.equals("May") || m.equals("October")){
            System.out.printf("Apartment: %.2f lv.%n", n * 65);
            System.out.printf("Studio: %.2f lv.", n * 50.00);
        }else if (m.equals("June") || m.equals("September")){
            System.out.printf("Apartment: %.2f lv.%n", n * 68.70);
            System.out.printf("Studio: %.2f lv.", n * 75.20);
        }else if(m.equals("July") || m.equals("August")){
            System.out.printf("Apartment: %.2f lv.%n", n * 77.00);
            System.out.printf("Studio: %.2f lv." , n * 76.00);

        }

        }
    }

Тагове:
0
Programming Basics with Java 22/11/2018 16:26:42
svetoslav_0 avatar svetoslav_0 1009 Точки

Имаш проблем в първитя няколко условия на if-овете. Навсякъде, където в един и същ if имаш '&&' и '||' е добре да имаш приоритет на логическите операции, иначе става каша. Например първата проверка, която е следната: 

n>7 && n<=14 && m.equals("May") || (m.equals("October"))

Добре би било да се зададе някакъв приоритет. Ето така, със скоби:

n>7 && n<=14 && (m.equals("May") || (m.equals("October")))

Така вече знаем, че трябва n да е по-голямо от 7, по-малко от 14 и едновременно с това m да е или 'May' или 'October'. По същия начин и със следващите.

ПС: Ако няма скоби, компилаторът го разбира по следният начин:

(n>7 && n<=14 && m.equals("May")) || (m.equals("October"))
0
22/11/2018 16:35:15
chaneto avatar chaneto -1 Точки

Благодаря, получи се. Никога нямаше да се сетя, защото на лекцията казаха, че когато има (&&), то винаги е с преоритет пред (или).

0
svetoslav_0 avatar svetoslav_0 1009 Точки

Ако трябва да съм честен, не съм на 100% сигурен. Мисля, че са с равен приоритет и се "четат" от ляво на дясно.

0
chaneto avatar chaneto -1 Точки

Вече ще знам, но съм сигурен, че на лекцията казаха така. Малко претрупана стана тази задача, има и по кратко решение с по малко писане ама..

0
chaneto avatar chaneto -1 Точки

Това е в пъти по кратко, но има неща които не разбирам. Или не съм бил в час или още не е взето като урок. Но така или иначе още не съм достгнал това ниво.

0
emo.999 avatar emo.999 399 Точки

Посочи ги. Ще ги изясним.smiley

1
chaneto avatar chaneto -1 Точки

Приюерно ето това: Studio *= 0.95

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