【发布时间】:2020-04-17 19:08:59
【问题描述】:
我想用用户给出的小数位数来计算 Pi,当输入为 0 时,变量 piNumber 应该设置为“3”而不是“3”,这样输出就没有无用了逗号。
这行得通
static string PiNumberFinder(int amountOfDigits)
{
string piNumber = "3,";
int dividedBy = 11080585;
int divisor = 78256779;
int result;
for (int i = 0; i < amountOfDigits; i++)
{
if (dividedBy < divisor)
dividedBy *= 10;
result = dividedBy / divisor;
string resultString = result.ToString();
piNumber += resultString;
dividedBy = dividedBy - divisor * result;
}
return piNumber;
}
但如果使用 if 语句则不会
static string PiNumberFinder(int amountOfDigits)
{
int dividedBy = 11080585;
int divisor = 78256779;
int result;
if (amountOfDigits == 0)
{
string piNumber = "3";
}
else
{
string piNumber = "3,";
}
for (int i = 0; i < amountOfDigits; i++)
{
if (dividedBy < divisor)
dividedBy *= 10;
result = dividedBy / divisor;
string resultString = result.ToString();
piNumber += resultString; // I get an error here
dividedBy = dividedBy - divisor * result;
}
return piNumber; // I get an error here
}
对于上面代码中指向的行,我两次收到错误“当前上下文中不存在名称 'piNumber'”
【问题讨论】:
-
您在
if语句的范围内定义变量。将变量移到if之外并赋值。 -
在 if 语句之前声明字符串 piNumber,并在语句内部更改它
-
谢谢,题外话,但是在 Python 中,当 try 语句没有引发错误时,您可以使用 else 语句。 c#中有这样的东西吗?
标签: c# if-statement