Loading...
BobbyTrade avatar BobbyTrade 0 Точки

Complex Conditional Statements 08. Trade Comissions 94/100

Здравейте,

това е решението ми на задачата https://pastebin.com/bE8gygcX , но judge ми казва , че като въведе друго освен посочените градове, вместо error изписва числото под градът само че с минус отпред.

Проверих си всички входове/изходи от условието - всичко е точно , ако въведа kaspichan -20 ми изписва error (както трябва да бъде), обаче наистина ако въведа burgas 2000 ми изписва -2000.00

А if конструкцията съм я завършил с else , би трябвало да обхваща всичко което не съм описал. Прегледах кодът бая пъти , не мога да открия къде греша, прегледах и на други колеги кодовете и решенията и все още не намирам грешката си.

Благодаря.

Тагове:
0
Programming Basics
Rogneda avatar Rogneda 60 Точки
Понеже нямаш при if-овете гр. Бургас, то влиза в  if (sales >= 0) { Console.WriteLine("{0:f2}" , sales * comission); } и умножава 2000 с -1, която е началната стойност която си посочил на комиссионната. За да даде error за грешно въведен град, направи if (sofia) .. else if (varna).. else if (plovdiv).. else /тук да изпише error/
1
TonislavAtanasov avatar TonislavAtanasov 86 Точки

Както каза колегата @Rogneda. Аз само ще добавя, че предвид въпроса ти, трябва да отделиш повече внимание на условните конструкции.
else ще се изпълни само ако условието на прилежащия му if е false. В случая това е if (sales >= 0). Винаги когато не си сигурен защо се случва нещо, го пусни през дебъгера ред по ред. Изключително е полезно и в 99% от случаите ще разбереш сам къде ти е грешката.

Ако искаш да изпишеш "error" ако не бъде избран нито един от трите посочени града, трябва да използваш if-else if-else или по-чистия вариант според мен - switch-case.

Нещо такова:

switch(town) {
    case "Sofia":
        // code
        break;
    case "Varna":
        // code
        break;
    case "Plovdiv":
        // code
        break;
    default:
        Console.WriteLine("error");
        break;
}

// if (sales >= 0) goes here

Не съм чел условието на задачата, но входът винаги ли е с главна първа буква? Ако има възможност да се въведе друго, сложи едно toLower() да ти е мирна главата :)

0
02/04/2018 17:36:15
Rogneda avatar Rogneda 60 Точки

ПРи else(останалите градове) след error.... както и в случая със switch, при default по-добре да напишеш return, вместо break .. за да не изписва -2000 след error.

0
TonislavAtanasov avatar TonislavAtanasov 86 Точки

Както казах, не съм чел условието на задачата. Дадох примерен код. Ако не трябва да се изписва нищо, биеш return return (за по-сигурно) и си в играта :)

0
BobbyTrade avatar BobbyTrade 0 Точки

Благодаря за помощта , за тази задача не исках да използвам switch-case, защото смятам , че с нея е по-лесният вариант. Иначе case конструкцията ще я ползвам в следващата задача. Входовете са с главна буква, но може да го направя и с ToLower. Благодаря и на двама ви за бързата намеса.

 

П.П. ето го и кода (100/100 в judge) https://pastebin.com/DUkDwv5r

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