2013-10-09 6 views
0

Мне поручено создать программу, которая примет заказ на пиццу. Ive дал пользователю два переключателя, чтобы выбрать размер (большие 6 $, X-Large $ 12) и четыре переключателя для количества начинок (1, 2, 3, 4). Я придумал уравнение, которое рассчитает стоимость с включенным налогом (C = 1,13 (0,75 (x-1) +1) + S, x - верхние и S - размер).C# Использование неназначенной переменной в математическом выражении

Моя проблема заключается в том, что как только я попытаюсь закодировать уравнение, в нем говорится, что есть ошибка с использованием Nonassigned переменных numbToppings и размера во второй последней строке.

Любые идеи о том, почему это происходит и как это исправить.

 const double taxes = 1.13; 
     const double toppings = 0.75; 
     double size; 
     double numToppings; 
     double costInitial; 
     double costTotal; 

     if (radLarge.Checked == true) 
     { 
      size = 6; 
     } 

     else if (radXLarge.Checked == true) 
     { 
      size = 12; 
     } 

     if (rad1.Checked == true) 
     { 
      numToppings = 1; 
     } 

     else if (rad2.Checked == true) 
     { 
      numToppings = 2; 
     } 

     else if (rad3.Checked == true) 
     { 
      numToppings = 3; 
     } 

     else if (rad4.Checked == true) 
     { 
      numToppings = 4; 
     } 

     costInitial = ((toppings * numToppings - 1) + 1) + size; 
     costTotal = taxes * costInitial; 

ответ

0

Простой сделать это

double numToppings = 0; 

Установите его равным нулю.

Причина: вы делаете некоторые вычисления на numToppings, а компилятор недостаточно интеллектуальный, чтобы убедиться, что вы обработали все возможные условия, и numToppings будет инициализирован в любом случае.

Подробнее ... Strange behaviour of switch case with boolean value.

Смежные вопросы