我的任务是制作一个要订购披萨的程序。我给了用户两个单选按钮以选择大小(大6 $,X-Large $ 12),并给了四个单选按钮以选择浇头的数量(1、2、3、4)。我想出了一个方程,它将计算含税的成本(C = 1.13(0.75(x-1)+1)+ S,x是浇头,S是大小)。
我的问题是,一旦我尝试对公式进行编码,它就会说在倒数第二行中使用未分配的变量numbToppings和size会出错。
关于为什么发生这种情况以及如何解决的任何想法。
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;
最佳答案
简单做到这一点
double numToppings = 0;
将其设置为零。
原因:您正在对
numToppings
进行一些计算,并且编译器不够智能,无法确定您已处理了所有可能的条件,并且无论如何都会初始化numToppings
。有关更多信息,请阅读Strange behaviour of switch case with boolean value。
关于c# - C#在数学表达式中使用未分配的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19261538/