C# 在if语句中声明整数

C# 在if语句中声明整数,c#,if-statement,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!"); }

这是到目前为止我的代码

{     
    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!");
        }
    }
现在我得到一个错误,说“r”在当前上下文中不存在


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

问题:由于您在
if block
内部声明了变量
r
,因此在
if block
外部将无法访问该变量。因为r变为
局部变量
if块

解决方案:您需要将
r
的变量声明移到if块之外。这样变量
r
将在
函数
范围内的任何地方都可用

建议:您不需要使用大括号创建额外的代码块,请尝试删除它们

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }
建议:如果您确实想在
布尔值
变量
y
变为
true
时执行上述操作,您可以简化上述代码,而无需创建额外变量
r
,如下所示:

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }

问题:由于您在
if block
内部声明了变量
r
,因此在
if block
外部将无法访问该变量。因为r变为
局部变量
if块

解决方案:您需要将
r
的变量声明移到if块之外。这样变量
r
将在
函数
范围内的任何地方都可用

建议:您不需要使用大括号创建额外的代码块,请尝试删除它们

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }
建议:如果您确实想在
布尔值
变量
y
变为
true
时执行上述操作,您可以简化上述代码,而无需创建额外变量
r
,如下所示:

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }

问题:由于您在
if block
内部声明了变量
r
,因此在
if block
外部将无法访问该变量。因为r变为
局部变量
if块

解决方案:您需要将
r
的变量声明移到if块之外。这样变量
r
将在
函数
范围内的任何地方都可用

建议:您不需要使用大括号创建额外的代码块,请尝试删除它们

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }
建议:如果您确实想在
布尔值
变量
y
变为
true
时执行上述操作,您可以简化上述代码,而无需创建额外变量
r
,如下所示:

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }

问题:由于您在
if block
内部声明了变量
r
,因此在
if block
外部将无法访问该变量。因为r变为
局部变量
if块

解决方案:您需要将
r
的变量声明移到if块之外。这样变量
r
将在
函数
范围内的任何地方都可用

建议:您不需要使用大括号创建额外的代码块,请尝试删除它们

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }
建议:如果您确实想在
布尔值
变量
y
变为
true
时执行上述操作,您可以简化上述代码,而无需创建额外变量
r
,如下所示:

试试这个:

    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!");
    }
    int x = 10;
    int p = 40;
    bool y = true;       
    if (y == true && (x+p)>=100)
    {
      Console.WriteLine("Variables are greater than 100!");
    }
    else
    {
       Console.WriteLine("Variables are less than 100!");
    }

错误是正确的,此代码:

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

确实声明了整数,但一旦关闭块,新变量(在本例中为
r
)就不再存在。它仅在
范围内可见。声明
r
就像你对
x
p
所做的那样,你会没事的。

错误是正确的,此代码:

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

确实声明了整数,但一旦关闭块,新变量(在本例中为
r
)就不再存在。它仅在
范围内可见。声明
r
就像你对
x
p
所做的那样,你会没事的。

错误是正确的,此代码:

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

确实声明了整数,但一旦关闭块,新变量(在本例中为
r
)就不再存在。它仅在
范围内可见。声明
r
就像你对
x
p
所做的那样,你会没事的。

错误是正确的,此代码:

if (y == true)
{
    int r = p;
}
确实声明了整数,但一旦关闭块,新变量(在本例中为
r
)就不再存在。它仅在
范围内可见。声明
r
就像你对
x
p
所做的那样,你会没事的。

给你

    if (y == true)
    {
        int r = p; 
    }
您的“r”变量是在if子句中声明的,所以它只在本子句中已知,而不在外括号中。这就是为什么在下一个if子句中没有定义“r”变量的原因。

在这里

    if (y == true)
    {
        int r = p; 
    }
您的“r”变量是在if子句中声明的,所以它只在本子句中已知,而不在外括号中。这就是为什么在下一个if子句中没有定义“r”变量的原因。

在这里

    if (y == true)
    {
        int r = p; 
    }
您的“r”变量是在if子句中声明的,所以它只在本子句中已知,而不在外括号中。这就是为什么在下一个if子句中没有定义“r”变量的原因。

在这里

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

您的“r”变量是在if子句中声明的,所以它只在本子句中已知,而不在外括号中。这就是为什么在下一个if子句中没有定义“r”变量。

为什么要使用这么多作用域?@MarcinJuraszek Instea