为什么我不能在 while 循环中声明这个变量?

Why can't I declare this variable within while loops?

我对编程很陌生,如果这个问题看起来有点愚蠢,请原谅我,但为什么当我尝试 运行 这段代码时它不起作用:

    int calculate_quarters(int cents)
{
    while((25 <= cents) && (cents < 50))
    {
        int quarters = 1;
    }
    while((50 <= cents) && (cents < 100))
    {
        int quarters = 2;
     }
     return quarters;
}

但是当我尝试 运行 这段代码时它运行得很好吗?

 int calculate_quarters(int cents)
{
    int quarters = 0;
    while((25 <= cents) && (cents < 50))
    {
        quarters = 1;
    }
    while((50 <= cents) && (cents < 100))
    {
        quarters = 2;
     }
     return quarters;
}

这是您的情况的直观图片:

对于您的第一个代码,quarters 是在 while 循环内声明的,因此无法从外部范围引用它。

但是,对于您的第二个代码,quarters 是在方法中声明的,因此现在可以在该范围内引用它。