У меня есть цикл 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
в какой-то момент. Фактически, если я перемещаю операторы печати внутри if
, он работает.
Как решить эту проблему?
Вы уверены, что первое условие оператора 'if' истинно в какой-то момент вашего цикла? Если это не так, 'pX' и' pY' не получат значения. – Jason
абсолютно уверен. Если я напечатаю значение внутри цикла, он будет работать. – Manfredi