Nested Conditional Statements - Exercise-08. Hotel Room
Задачата не приема логическото или.
Първият месец влиза при дебъгването, а вторият- не. При теста връща 20/100.
Задачата не приема логическото или.
Първият месец влиза при дебъгването, а вторият- не. При теста връща 20/100.
Заповядай :
using System;
namespace HotelRoom
{
class Program
{
static void Main(string[] args)
{
string month = Console.ReadLine(); // May, June, July, August, September или October
int countNights = int.Parse(Console.ReadLine());
double pricePerNightStudy = 0.0;
double pricePerNightApartment = 0.0;
if (month == "May" || month == "October")
{
pricePerNightStudy = countNights * 50;
pricePerNightApartment = countNights * 65;
if (countNights > 7 && countNights <= 14)
{
pricePerNightStudy -= (pricePerNightStudy * 0.05);
}
else if (countNights > 14)
{
pricePerNightStudy -= (pricePerNightStudy * 0.30);
pricePerNightApartment -= (pricePerNightApartment * 0.10);
}
}
else if (month == "June" || month == "September")
{
pricePerNightStudy = countNights * 75.20;
pricePerNightApartment = countNights * 68.70;
if (countNights > 14)
{
pricePerNightStudy -= (pricePerNightStudy * 0.20);
pricePerNightApartment -= (pricePerNightApartment * 0.10);
}
}
else if (month == "July" || month == "August")
{
pricePerNightStudy = countNights * 76;
pricePerNightApartment = countNights * 77;
if (countNights > 14)
{
pricePerNightApartment -= (pricePerNightApartment * 0.10);
}
}
Console.WriteLine($"Apartment: {pricePerNightApartment:f2} lv.");
Console.WriteLine($"Studio: {pricePerNightStudy:f2} lv.");
}
}
}
Благодаря Ви, но аз се борих дълго с моето решение и грешката идва от трите условия, които задавам. Според мен трябва да има начин да го приеме и така, но незнам защо не го приема. При размяна на местата на месеците пак приема само първия. На колко условия може едновременно да отгавяря If()?
Логиката на твоя код е така построена, че след всички изчисления ще се изпечата или апартамент или студио, а по условие трябва да се даде статистика и за двата типа стаи. В месеците Август и Юли, двете if конструкции са вложени, в смисъл не е същата логика както при Май и Октомври и самата проверка се изпълнява само и единствено за типа стая апартамент. При Юни и Септември е същото положение. Двете if конструкции няма да бъдат изпълнени за стая тип студио. По този начин построен кода, винаги ще ти дава грешен изход защото цената на студиото няма да може да се променя.