到目前为止,这是我的代码
{
int x = 10;
int p = 40;
bool y = true;
if (y == true)
{
int r = p;
}
{
if (x + r >= 100)
{
Console.WriteLine("Variables are greater than 100!");
}
else
{
Console.WriteLine("Variables are less than 100!");
}
}
现在我收到的错误是“当前上下文中不存在”。
我是编程新手所以请不要讨厌!
答案 0 :(得分:2)
错误是对的,这段代码:
if (y == true)
{
int r = p;
}
确实是在声明整数,但是一旦你关闭了块,新变量(在这种情况下为r
)就不再存在了。它仅对if
范围可见。声明r
就像使用x
和p
一样,你会没事的。
答案 1 :(得分:1)
问题:,因为您在r
内声明了变量if block
,但accessible
之外的变量不会是if block
。因为r变为local variable
的{{1}}。
解决方案:您需要将if-block
的变量声明移到if块之外。因此变量r
将r
位于available
之内范围。
建议:您不需要使用function
创建额外的代码块,请尝试删除它们。
试试这个:
curly braces
建议:如果您真的想在 int x = 10;
int p = 40;
bool y = true;
int r = 0
if (y == true)
{
r = p;
}
if (x + r >= 100)
{
Console.WriteLine("Variables are greater than 100!");
}
else
{
Console.WriteLine("Variables are less than 100!");
}
变量boolean
变为y
时执行上述操作,则可以简化上述代码而无需创建额外的变量{ {1}}如下:
试试这个:
true
答案 2 :(得分:0)
这是..
if (y == true)
{
int r = p;
}
您的“r”变量在if子句中声明,因此它仅在本节中已知,而不是在侧括号中。这就是为什么在下一个if子句中没有定义“r”变量。