/ / За цикъла java не изпълнява правилно? [затворен] - java, масиви, контури, за-цикъл, многомерни масиви

За Java цикъл не изпълнява правилно? [затворен] - java, масиви, цикли, за-цикъл, многомерни масиви

//Declared here the atributes int id and int [9][5] array.

public String getPos(int id){
String res = "";
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
res = res + i + "," + j;
}
}
return res;
}

Когато стартирам getPos (1); резултатът е 8,2, но искам да отпечата 9,3. Как го правя?

Отговори:

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

Java индексите винаги започват с 0. така че 0,0 ще бъде първият елемент.

Просто добавете 1 към двата намерени индекса преди връщане.

Също така: Може ли "id" да бъде намерен на няколко позиции, или е уникален?

Ако е уникален и винаги искате резултатът да бъде върнат като "x, y", трябва незабавно да се върнете, веднага щом намерите идентификатора:

public String getPos(int id){
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
return (i+1) + "," + (j+1);
}
}

Ако идентификаторът може да бъде намерен няколко пъти, трябваПомислете как да отбележите тези многократни резултати, защото понастоящем програмата може да върне нещо като "1,56,2" (ако е зададен идентификационен номер и при 1,5, и в 6,2)

Нещо като:

public String getPos(int id){
String res = "";
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
res = res +"["+ (i+1) + "," + (j+1)+"]";
}
}
return res;

^ - ще се върне "[1,5] [6,2]", опаковането намери резултати в скоби и ги прави по-четливи.