将方程从Excel传递到C#

时间:2014-10-15 20:12:56

标签: c# excel

我试图将Excel电子表格转换为使用C#制作的小程序。

我在excel上的等式是:

if(S6>=3.55;1;if(S6>2.25;0.8;if(S6>1.61;0.65;0.5)))

其中S6是我检查的值的单元格。

我尝试了以下内容:

        if (width>=3.55)    
        {
              double radius = 1.0;

           else if (width>2.25 )
            {
               double radius = 0.8;      
            }
                else if (width>1.6 )
                {
                    double radius = 0.65;        
                }
                   else
                    {
                        double radius = 0.5;
                    }
        }

但它不起作用,所以我错过了,我应该如何声明与变量宽度相关的变量半径? C#上的消息说我无法声明变量" radius"在当前范围内,我应该在循环之前声明变量吗? MSDN帮助文件只在if语句中使用带有return语句的固定值,这意味着我在if {}循环中不能有变量依赖项吗?另外,还有其他更有效的方法来执行这种条件逻辑吗?

2 个答案:

答案 0 :(得分:3)

if块不包含else / else if个语句。您需要先关闭原始if语句。此外,在每个范围内声明局部变量而不使用它并没有任何意义。您可能希望在任何if / else块

的范围之外声明radius
double radius;
if (width>=3.55)    
{
   radius = 1.0;
}
else if (width>2.25 )
{
   radius = 0.8;      
}
else if (width>1.6 )
{
    radius = 0.65;        
}
else
{
    radius = 0.5;
}

答案 1 :(得分:1)

radius语句上方声明if 修复您的大括号。正确对齐一切。

double radius = 0;

if (width >= 3.55)    
{
    radius = 1.0;
}
else if (width > 2.25 )
{
    radius = 0.8;      
}
else if (width > 1.6 )
{
    radius = 0.65;        
}
else
{
    radius = 0.5;
}

当您离开radiusif语句时,在if语句中声明else变量会导致变量超出范围(消失)。