Задача 3.Truck Driver от Exam - 19 March 2017 - Evening
Здравейте, не мога да разбера къде бъркам при решението и защо не минава в switch-a...
https://pastebin.com/Xt8UvtYp
Здравейте, не мога да разбера къде бъркам при решението и защо не минава в switch-a...
https://pastebin.com/Xt8UvtYp
Моля някой да ми помогне, не разбирам защо при зададен този вход ( Autumn 8600) ми дава грешка програмата, влиза в първия if, където изобщо не му е мястото. Смята ми го с цена 0,75 а трябва да влезе във втория и да смята цена 0,95.
var sezon = Console.ReadLine();
var kilometri = double.Parse(Console.ReadLine());
var price = 0.0;
if (kilometri <= 5000 && sezon == "Spring" || sezon == "Autumn" ) { price = 0.75; }
else if (kilometri > 5000 && kilometri <= 10000 && sezon == "Spring" || sezon == "Autumn") { price = 0.95;}
else if (kilometri <= 5000 && sezon == "Summer") { price = 0.90; }
else if (kilometri > 5000 && kilometri <= 10000 && sezon == "Summer") { price = 1.10; }
else if (kilometri <= 5000 && sezon == "Winter") { price = 1.05; }
else if (kilometri > 5000 && kilometri <= 10000 && sezon == "Winter") { price = 1.25; }
else if (kilometri > 10000 && kilometri <= 20000 && sezon == "Spring" || sezon == "Autumn" || sezon == "Summer" || sezon == "Winter") { price = 1.45; }
var sum = kilometri * price*4;
var salary = sum - (sum * 0.10);
Console.WriteLine($"{salary:f2}");
Операторът && има приоритет пред ||, така че първият ти if се смята като if ((kilometri <= 5000 && sezon == "Spring") || sezon = "Autumn") и тъй като последното връща true се изпълнява този код.
Благодаря, мисля да преработя целия код и да направя вложени if.