在 if 语句中声明一个整数

本文关键字:一个 整数 if 语句 声明 | 更新日期: 2024-10-31 00:48:15

这是我到目前为止的代码

{     
    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 语句中声明一个整数

错误是正确的,这段代码:

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

确实声明了整数,但是一旦关闭块,新变量(在本例中为 r)就不复存在。它仅对if范围可见。像你对xp一样宣布r,你会没事的。

问题:由于您在if block内部声明了变量r,因此不会在if block外部accessible。 因为 r 对if-block local variable

解决方案 :您需要将r的变量声明移动到 if 之外 block.so 该变量r将在该function范围内的任何位置available

建议:你不需要使用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!");
    }

建议:如果你真的想在变量y变得true时执行上述操作boolean你可以简化上面的代码,而无需创建额外的变量r如下所示:

试试这个:

    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"变量是在if子句中声明的,因此它只在此子句中知道,而不是外侧括号。这就是为什么在下一个 if 子句中没有定义 "r" 变量的原因。