我写了一个简单的for循环,它添加了1到10之间的数字。这是我的代码:
for(int x = 0 ; x <10 ; x++) {
int sum =+ x;
}
System.out.println(sum);
但是当我尝试使用&#34; sum&#34;循环外的变量,我得到一个错误&#34;总和无法解析为变量&#34;。为什么?我只是在循环中定义了sum并且它有一个变量!我真的很困惑。
答案 0 :(得分:9)
sum
。=+
代替+=
。
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 Scopes和scope 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
变量的作用域在循环中。因此,它无法在它之外访问。
但是你可以在循环之外声明它。
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 +=x
与sum = 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);