如何使用以前在if语句中使用的数组值?

时间:2016-02-17 19:41:12

标签: c# arrays

这可能是错误的方法,但我试图从一个数组中调用一个特定的数字,这个数字会根据" if"声明被使用了。例如

if (diameter >= constDiameter[0] && diameter < constDiameter[1])                 
{
    areaOfTheSlice = areaOfThePizza / constNumberOfSlices[0];                                                                
}
else if (diameter >= constDiameter[1] && diameter < constDiameter[2])            
{
    areaOfTheSlice = areaOfThePizza / constNumberOfSlices[1];             
}
else if (diameter >= constDiameter[2] && diameter < constDiameter[3])            
{
    areaOfTheSlice = areaOfThePizza / constNumberOfSlices[2];            
}
Console.WriteLine("A " + diameter + "\" pizza will yield {0} slices", constNumberOfSlices);

对于&#34; constNumberOfSlices我希望它打印在If语句中实际使用的任何数字。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

您必须创建一个容器来存储披萨的切片数量。如果这有意义,请告诉我们!

int constNumberOfSlices;
if (diameter >= constDiameter[0] && diameter < constDiameter[1])                 
{
    constNumberOfSlices = constNumberOfSlices[0];
    areaOfTheSlice = areaOfThePizza / constNumberOfSlices[0];                                                                
}
else if (diameter >= constDiameter[1] && diameter < constDiameter[2])            
{
   constNumberOfSlices = constNumberOfSlices[1];
   areaOfTheSlice = areaOfThePizza / constNumberOfSlices[1];             
}
else if (diameter >= constDiameter[2] && diameter < constDiameter[3])            
{
    constNumberOfSlices = constNumberOfSlices[2];
    areaOfTheSlice = areaOfThePizza / constNumberOfSlices[2];            
}

Console.WriteLine("A " + diameter + "\" pizza will yield {0} slices", constNumberOfSlices);

答案 1 :(得分:1)

正如其他人所说,你必须在找到它时保存它。

此外,您还可以利用此方案中的for循环。

int slices = 0;
for(int i = 0; i < 3; i++)
{
    if (diameter >= constDiameter[i] && diameter < constDiameter[i + 1])                 
    {
        areaOfTheSlice = areaOfThePizza / constNumberOfSlices[i];
        slices = i;
        break;                                                  
    }
}

答案 2 :(得分:0)

您可以在if/else块中打印您正在使用的号码。但是,既然你总是做同样的计算,你可能想要存储切片的数量,然后计算面积,如下所示:

int numberOfSlices;
if (diameter >= constDiameter[0] && diameter < constDiameter[1])                 
{
    numberOfSlices = constNumberOfSlices[0];                                                               
}
else if (diameter >= constDiameter[1] && diameter < constDiameter[2])            
{
    numberOfSlices = constNumberOfSlices[1];             
}
else if (diameter >= constDiameter[2] && diameter < constDiameter[3])            
{
    numberOfSlices = constNumberOfSlices[2];            
}
else
{
    // Put default value for number of slices here.
}
areaOfTheSlice = areaOfThePizza / numberOfSlices;
Console.WriteLine("A " + diameter + "\" pizza will yield {0} slices", numberOfSlices);

请注意,如果if块中没有条件为真,则必须找到切片数的默认值。