在if语句中声明一个整数

时间:2013-12-19 01:39:39

标签: c# if-statement

到目前为止,这是我的代码

{     
    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!");
        }
    }

现在我收到的错误是“当前上下文中不存在”。

我是编程新手所以请不要讨厌!

3 个答案:

答案 0 :(得分:2)

错误是对的,这段代码:

if (y == true)
{
    int r = p;
}

确实是在声明整数,但是一旦你关闭了块,新变量(在这种情况下为r)就不再存在了。它仅对if范围可见。声明r就像使用xp一样,你会没事的。

答案 1 :(得分:1)

问题:,因为您在r内声明了变量if block,但accessible之外的变量不会是if block。因为r变为local variable的{​​{1}}。

解决方案:您需要将if-block的变量声明移到if块之外。因此变量rr位于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”变量。