提问人:Samrudh S 提问时间:2/2/2023 更新时间:2/2/2023 访问量:154
g 无法解析为变量
g cannot be resolved to a variable
问:
g 无法解析为变量是弹出错误。我已经在 for 循环中初始化了 g,那么为什么会出现这个错误?我是初学者,所以任何人都可以用尽可能多的简单易懂的词来解释。
import java.util.Scanner;
public class Bellman {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number of nodes");
int n = sc.nextInt();
System.out.println("Enter the cost matrix");
for (int j = 0; j<n; j++) {
for (int k = 0; k<n; k++) {
int g[j][j] = sc.nextInt();
}
}
}
}
g 无法解析为变量。我已经在 for 循环中初始化了 g,那么为什么会出现这个错误?
答:
0赞
Pavel
2/2/2023
#1
这很可能是您想要实现的目标:
int g[][] = new int[n][n];
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
g[j][k] = sc.nextInt();
}
}
您必须使用特定大小初始化数组,然后才能在给定索引处分配值。
评论
0赞
Samrudh S
2/2/2023
int g[j][j] = sc.nextInt()。这不是在 for 循环中声明和初始化两者吗?有没有办法直接在 for 循环中使用 size 进行初始化。在此之前,我为 n 做了同样的事情。我直接在int n = sc.nextInt()中声明并初始化了n;
0赞
Pavel
2/2/2023
它不是声明,它只是分配。你肯定可以在循环中声明一个变量,但它的作用域只在循环内,你不能在循环中使用。而且你不能声明数组的特定索引,你需要整个数组,这在循环内部声明是没有意义的
评论
g
g
int g[j][j]
g
int