我试图将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 {}循环中不能有变量依赖项吗?另外,还有其他更有效的方法来执行这种条件逻辑吗?
答案 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;
}
当您离开radius
或if
语句时,在if
语句中声明else
变量会导致变量超出范围(消失)。