在"之后使用变量"环

时间:2014-11-04 14:46:58

标签: java loops

我写了一个简单的for循环,它添加了1到10之间的数字。这是我的代码:

for(int x = 0 ; x <10 ; x++) {
    int sum =+ x; 
}
System.out.println(sum);

但是当我尝试使用&#34; sum&#34;循环外的变量,我得到一个错误&#34;总和无法解析为变量&#34;。为什么?我只是在循环中定义了sum并且它有一个变量!我真的很困惑。

11 个答案:

答案 0 :(得分:9)

  1. 你在循环内声明sum
  2. 您使用=+代替+=
  3. int sum = 0;
    for(int x = 0 ; x <10 ; x++) {
        sum += x; 
    }
    System.out.println(sum);
    

答案 1 :(得分:2)

您已在for循环内声明了它。所以它的范围在块内,不能在块之外访问

您可以在循环外声明它,

int sum=0;
for(int x = 0 ; x <10 ; x++)
        {
           sum += x;     
        }    
System.out.println(sum);

根据需要打印其值。阅读Variable Scopesscope and lifetime of variables

答案 2 :(得分:1)

   int sum  = 0 ;
   for(int x = 0 ; x <10 ; x++){
          sum += x;               
    }
    System.out.println(sum);

答案 3 :(得分:1)

您的sum变量已在for循环范围内定义。

所以错误

sum cannot be resolved to a variable

您还应该在循环外定义它,如下所示:

int sum = 0;
for(int x = 0 ; x < 10 ; x++) 
{
    sum += x; 
}
System.out.println(sum);

它应该可以解决你的问题。

答案 4 :(得分:0)

你需要在for循环之外声明变量,否则它将是循环体的本地变量

答案 5 :(得分:0)

Sum的范围不正确。你想要这个:

int sum = 0;
for(...)
print(sum)

答案 6 :(得分:0)

原因是您循环遍历的所有内容,您的计算机每次都会创建一个新的int

尝试做:

int sum=0;
for(int x = 0 ; x <10 ; x++){
    sum += x; 
}
System.out.println(sum);

答案 7 :(得分:0)

您的sum变量的作用域在循环中。因此,它无法在它之外访问。

但是你可以在循环之外声明它。

Demo

int sum =0; 
for(int x = 0 ; x <10 ; x++)
  {
    sum += x; 
  }
System.out.println(sum);

此外,它应该是+=而不是=+

+=sum变量执行求和。它每次在循环的连续体中填充变量sum。同时,=+更新x变量。每次循环进行时,x的值都会更新,从而丢弃先前的值。

因此,由于此循环发生9次,您最终会得到最后x的值,即9,插入sum变量。因此,在较旧的错误代码中,您获得了sum=9。换句话说,sum +=xsum = sum + x

相同

答案 8 :(得分:0)

您的代码中出现的问题是由于变量的范围。 范围是指变量的生命周期和可访问性。

范围的大小取决于声明变量的位置。例如,如果变量在类的顶部声明,那么所有类方法都可以访问它。如果它在方法中声明,那么它只能在该方法中使用。

正确的版本如下:

   int sum = 0;
   for(int x = 0 ; x <10 ; x++)
    {
        sum += x; 
    }
    System.out.println(sum);

答案 9 :(得分:0)

您在sum循环中定义的变量for具有本地范围。这意味着它只能在for循环中使用。要在外面使用它,你必须在块之外声明如下。

int sum = 0;
for(int x = 0 ; x <10 ; x++) 
{
    sum += x; 
}

答案 10 :(得分:0)

您应该在for循环之外声明sum变量。你也应该使用+ =代替= +

就像这样

int sum = 0;
for(int x = 0 ; x < 10 ; x++) {
    sum += x; 
}
System.out.println(sum);