main 中声明的变量可以从静态函数访问吗?
can variable declared in main be accessed from static function?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int simpleArraySum(int n, int[] ar) {
// Complete this function
for(int ar_i = 0; ar_i < n; ar_i++){
result = result +ar[ar_i];
return result;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] ar = new int[n];
for(int ar_i = 0; ar_i < n; ar_i++){
ar[ar_i] = in.nextInt();
}
int result = simpleArraySum(n, ar);
System.out.println(result);
}
}
error log
Solution.java:13: error: cannot find symbol
result = result +ar[ar_i];
^
symbol: variable result
location: class Solution
Solution.java:13: error: cannot find symbol
result = result +ar[ar_i];
^
symbol: variable result
location: class Solution
Solution.java:14: error: cannot find symbol
return result;
^
symbol: variable result
location: class Solution
3 errors
这个程序假设打印数组中元素的总和。我不知道如何从静态函数访问 main 中声明的变量。我做错了什么?
变量result
在simpleArraySum()
方法中不存在,因为它是在main
的范围内定义的
您可以在方法中创建一个变量,该变量将进行求和并 return 它,它将存储在 result
int main
中
你还需要把 return sum;
放在循环之后,如果你不这样做,它会进行第一次迭代,然后 return 结果就结束了,你需要做所有循环和 return 之后的总和,如下所示:
static int simpleArraySum(int n, int[] ar) {
int sum = 0;
for(int ar_i = 0; ar_i < n; ar_i++){
sum = sum +ar[ar_i];
}
return sum;
}
提示(您不需要使用它们,它们只是信息性):
你也可以使用for each loop
,这意味着数组ar中的每个int,称为intInLoop
我们将这样做
for (int intInLoop : ar){
sum = sum + i;
}
并且sum = sum +ar[ar_i];
与sum += ar[ar_i];
相同
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
static int simpleArraySum(int n, int[] ar) {
// Complete this function
for(int ar_i = 0; ar_i < n; ar_i++){
result = result +ar[ar_i];
return result;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] ar = new int[n];
for(int ar_i = 0; ar_i < n; ar_i++){
ar[ar_i] = in.nextInt();
}
int result = simpleArraySum(n, ar);
System.out.println(result);
}
}
error log
Solution.java:13: error: cannot find symbol
result = result +ar[ar_i];
^
symbol: variable result
location: class Solution
Solution.java:13: error: cannot find symbol
result = result +ar[ar_i];
^
symbol: variable result
location: class Solution
Solution.java:14: error: cannot find symbol
return result;
^
symbol: variable result
location: class Solution
3 errors
这个程序假设打印数组中元素的总和。我不知道如何从静态函数访问 main 中声明的变量。我做错了什么?
变量result
在simpleArraySum()
方法中不存在,因为它是在main
您可以在方法中创建一个变量,该变量将进行求和并 return 它,它将存储在 result
int main
你还需要把 return sum;
放在循环之后,如果你不这样做,它会进行第一次迭代,然后 return 结果就结束了,你需要做所有循环和 return 之后的总和,如下所示:
static int simpleArraySum(int n, int[] ar) {
int sum = 0;
for(int ar_i = 0; ar_i < n; ar_i++){
sum = sum +ar[ar_i];
}
return sum;
}
提示(您不需要使用它们,它们只是信息性):
你也可以使用for each loop
,这意味着数组ar中的每个int,称为intInLoop
我们将这样做
for (int intInLoop : ar){
sum = sum + i;
}
并且sum = sum +ar[ar_i];
与sum += ar[ar_i];
相同