//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 за отговор № 1Java индексите винаги започват с 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]", опаковането намери резултати в скоби и ги прави по-четливи.