gpt4 book ai didi

java - 在for循环中初始化变量

转载 作者:行者123 更新时间:2023-11-30 07:54:06 25 4
gpt4 key购买 nike

我有一个 for 循环,并初始化该循环内的变量。之后,我需要操作该变量,但编译器表示变量未初始化。

public class Solution {
static void displayPathtoPrincess(int n, String[] grid) {
String[][] visual = new String[n][n];
for (int i = 0; i < n; i++) {
char[] myGrid = grid[i].toCharArray();
for (int j = 0; j < n; j++) {
visual[i][j] = myGrid[j] + "";
}
}

int pX;
int pY;
int bX;
int bY;
// rescue the princess
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (visual[i][j].equals("p")) {
pX = j;
pY = i;
}
if (visual[i][j].equals("m")) {
bX = j;
bY = i;
}
}
}
System.out.println(pY + "");
System.out.println(pX + "");
}

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m;
m = in.nextInt();
String grid[] = new String[m];
for (int i = 0; i < m; i++) {
grid[i] = in.next();
}

displayPathtoPrincess(m, grid);
}
}

if 条件在某个时刻为 true。事实上,如果我将 print 语句移到 if 内,它就可以工作。
如何解决这个问题?

最佳答案

如果您想在条件中初始化变量,那么您需要将它们设置为默认值:

int pX = 0;
int pY = 0;
int bX = 0;
int bY = 0;

这样,您的编译器将不再返回初始化问题。

编辑

我做了一些修改,因为我无法使你的代码工作(从字符串转换为整数,字符数组初始化问题等)。您可以尝试一下吗:

public class Solution {
static void displayPathtoPrincess(String grid) {
int n = grid.length();
String[][] visual = new String[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
visual[i][j] = String.valueOf(grid.charAt(j));
}
}

int pX = 0;
int pY = 0;
int bX;
int bY;
// rescue the princess
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (visual[i][j].equals("p")) {
pX = j;
pY = i;
}
if (visual[i][j].equals("m")) {
bX = j;
bY = i;
}
}
}
System.out.println(pY + "");
System.out.println(pX + "");
}

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String grid = in.next();

displayPathtoPrincess(grid);
}

这可能不是您想要做的,但我对在条件下初始化的变量值没有问题。

关于java - 在for循环中初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32923644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com