/ / Локални променливи, “мъртъв код” и 2D масиви проблеми в Java - Java, масиви, локални

Местни променливи, "мъртъв код" и 2D масиви в Java - Java, масиви, локални

Имам няколко проблеми при разработването на следния код в Java:

setPos(x, y);
for (int i = 0; x < size; i++) {
for (int j = 0; y < size; j++) {
if (board[x][y] == "K")
{
System.out.println("You"ve found a key! CONGRATS!");
return true;
}

Eclipse ме забелязват i и j, като местни променливи, те не се използват: The value of the local variable i is not used , Ако променям i и напишете x вместо това ми казва, че повтарям променливата.

j++ е маркиран като dead code ?

Също така трябва да търся конкретен тип елемент по диагонал на двуизмерен масив, опитвал съм това с 2 за цикли, както по-горе, но все още няма резултат.

Надявам се, че може да ми помогне, благодаря предварително!

Отговори:

0 за отговор № 1

Eclipse ме забелязват i и j, като местни променливи, те не се използват

Това е защото не ги използвате. Вие сте им задали стойности и по-късно сте увеличили (добавили към) тези стойности, но никога не сте употребяван за нищо.

j++ е маркиран като „мъртъв код“ (?)

По същата причина кодът увеличава стойността на j, но j никога не се използва, така че кодът не прави нищо. "Мъртъв код" се отнася до код, който няма цел или който никога не се изпълнява.


Вашите примки не правят много смисъл.

for (int i = 0; x < size; i++) {

Обикновено с a for контур, контролната променлива (i в този случай) трябва да се появи в и трите на частите на. \ t for изявление (инициализатор, тест и прираст), като това:

for (int i = 0; i < size; i++) {
// Change here -^

Но вие не правите това, вие само използвате i в инициализатора и нарастването, никога в теста (x < size). Същото важи и за вашия цикъл j.

По същия начин, освен ако има нещо, което да промени стойността на x, y, и / или size, тогава вашите контури или никога няма да работят (защото x или y вече е >= size), стартирайте веднъж (защото се случва така board[x][u] == "K"), или те ще работят завинаги (защото x или y е < size и тъй като нищо не се променя, те просто продължават да се въртят ...).


0 за отговор № 2

Eclipse ви дава подсказване къде грешката е:

for (int i = 0; x < size; i++) {
for (int j = 0; y < size; j++) {

вие повторете i и j, но вие уточнявате x < size и y < size като условие. Така никога няма да използвате действително i и j по този начин j++ и i++ е мъртъв код.

Ако наистина искате да използвате цикъл, трябва да използвате променливата, която използвате за итерация в условието for-loop:

for (int i = 0; i < size; i++) { // i instead of x
for (int j = 0; j < size; j++) { // j instead of y

0 за отговор № 3

Също така трябва да търся конкретен тип елемент по диагонал на двуизмерен масив, опитвал съм това с 2 за цикли, както по-горе, но все още няма резултат.

Защо да не използваме един for цикъл, както следва:

for(int i = 0; i< size; i++)
if(board[i][i] == "K")
{
System.out.println("You"ve found a key! CONGRATS!");
return true;
}

0 за отговор № 4

Виж това:

setPos(x, y);
if (board[x][y] == "K")  //no i or j so they are unused.
{
System.out.println("You"ve found a key! CONGRATS!");
return true;
}

If I change the i and write the x instead, it tells me that I"m repeating the variable.

Тъй като x вече е променлива (аргументът ви за функция) .Така че не можете да го декларирате отново.

dead code : Код, който няма ефект върху програмата.Мъртъв код


Забележка: това не е решение на проблема ви (защото не знам). просто е да ви покажа грешката.