Помощ за задача TradeComission
Скоро тази задача е обсъдена тук във форума, разгледах решенията, но ми се искаше да пробвам switch за първи път. И понеже не мога да разбера къде бъркам, моля за помощ. Решението ми: http://pastebin.com/Ev3a5DGe / за първи път ползвам PASTEBIN, дано всичко да е наред/.
Имам два проблема - 1. дефолтът не работи; 2. програмката не взема стойностите на comission, зададени в if-овете при различните случаи. Защо? И не мога да разбера кога да ползвам if и кога else if?
Ами, копирах адреса, отворих го наново в раздел, дава това:
TradeComissions - Pastebin.com
Отварям го и всичко си е там. Какво трябва да направя?
Добре, с риск някой да ми се скара:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TradeComissions
{
class Program
{
static void Main(string[] args)
{
string town = Console.ReadLine().ToLower();
var sales = double.Parse(Console.ReadLine());
var commission = 0.0;
switch (town)
{
case "Sofia":
if (0 <= sales && sales <= 500)
{ commission = 0.05; }
if (500 < sales && sales <= 1000)
{ commission = 0.07; }
if (1000 < sales && sales <= 10000)
{ commission = 0.08; }
if (sales > 10000)
{ commission = 0.12; }
break;
case "Varna":
if (0 <= sales && sales <= 500)
{ commission = 0.045; }
if (500 < sales && sales <= 1000)
{ commission = 0.075; }
if (1000 < sales && sales <= 10000)
{ commission = 0.1; }
if (sales > 10000)
{commission = 0.13;}
break;
case "Plovdiv":
if (0 <= sales && sales <= 500)
{ commission = 0.055; }
if (500 < sales && sales <= 1000)
{ commission = 0.08; }
if (1000 < sales && sales <= 10000)
{ commission = 0.12; }
if (sales > 10000)
{ commission = 0.145; }
break;
default:
Console.WriteLine("error");
}
Console.WriteLine("{0:f2}", commission * sales);
}
public static int sales { get; set; }
}
}
Това, което забелязвам веднага е, че defaul case-а ти няма break;. Другият проблем е използването на .ToLower след ReadLine-а и това, че всеки case е написан с първа главна буква вместо само с малки. Не съм пускал програмата във Visual Studio, това са грешките, които виждам само от текста. Извинявам се ако съм пропуснал нещо.