(programming basics) C# - 08 Trade Comissions
https://pastebin.com/LFy78t8m - Здравейте това е моя код на задачата обаче имам грешка и не знам къде точно.Защо стойността на комисионната не се променя в if?
https://pastebin.com/LFy78t8m - Здравейте това е моя код на задачата обаче имам грешка и не знам къде точно.Защо стойността на комисионната не се променя в if?
Заповядай, опитай с това решение
Здравей, написали сте .toLower при входа на града -> което означава че когато напишеш примерно Sofia директно стринга става с малки букви на sofia. А във if-овете сте написали if (town == "Sofia"), просто напишете градовете със малки букви и трябва да стане. Така написана програмата изобщо не влиза във if-овете , опитай с дебъгер.
Другият вариант е подребдата на вложегите if-ове, според мен е по-добре да започва със най-голямата проверка в случая ->
if (s > 10000)
{
comission = 12 / 100;
}
Надявам се съм бил полезен :)
Благодаря за бързия отговор поправих грешките но продължава да ми дава същия проблем? И на SmallShop ми се получава по същия начин - https://pastebin.com/ZwaTM5js .Цената не променя стойността си :/
Опита ли с else if {} вместо само if-ове?
На тази задача махни –>( var priceProduct = quantity*price; )
Което си го поставила преди if-овете и го постави след тях, точно над Console.WriteLine(priceProduct);
Не съм ти гледал логиката, но първото което забелязах е, че в началото казваш ToLower(), което ще рече, че
навсякъде в проверките имената на градовете трабва да са с малки букви:
if (town == "Sofia"), трябва да е така if (town == "sofia"), и навсякъде другаде, където имаш такава проверка с главна буква, трябва да ги оправиш.
string town = Console.ReadLine().ToLower();
Градът ти е с малка буква, а проверките ти започват с главна
или махни ToLower() или смени имената :)
if (s >= 0&&s <= 500)
if (s >= 500 && s <= 1000)
ако цената ти е 500 и 2те са верни :)
Колегата е много прав!
1.Смени си имената на градовете да са само с малки букви щом ще ползваш метода .ToLower();
2. именувай си променливите със значещи имена вместо var s по-добре напиши var sales, така като си го нарпаввил със strig town
3. Винаги е добра идея да си проверяваш операторите за сравнение, най-често там се объркват нещата.
if (s >= 0&&s <= 500)
if (s >= 500 && s <= 1000)
ако продажбите са точно 500 влизаш първо в първата проверка защото s = 500 а ти ти си нписал < или =
след това програмата влзиа и във втората проверка и презаписва комисионната защото s = 500 а ти си написал > или =
и това ти прецаква логиката, мисля, че във втората прверка трябва да го направиш > 500 && <= 1000 но не съм 100% сигурен, че съм позабравил условието на задачата какво искаше.
Работи! :D Оправих си грешките.Благодаря много за съдействието