оператор return с циклом for - PullRequest
0 голосов
/ 16 мая 2011

На языке программирования Java, Как я могу реализовать "для цикла" в операторе возврата

У меня есть этот код

public String toString(){
return String.format(num[0]+" - "+num[1]+" - "+num[2]+" - "+num[3]+" - "+num[4]+" - "+num[5]+" - "+num[6]+" - "+num[7]+" - "+num[8]+" - "+num[9]+" - "+num[10]+" - "+num[11]+" - "+num[12]+"\n");
}

, если в массиве num есть 1000 элементов, и я хочу вернутьвсе эти элементы, как я могу это сделать без записи, по одному, как предыдущий ..

Я попытался с помощью цикла for, но выдает ошибку

public String toString(){
for(int j=0 ; j<100 ; j++)
return String.format(num[j]+" - ");
}   

Ответы [ 4 ]

4 голосов
/ 16 мая 2011

Если вы делаете return внутри цикла, он прерывает цикл. То, что вы хотите сделать, это вернуть большую строку со всеми этими строками concat. Сделать

public String toString(){
for(int j=0 ; j<100 ; j++)
s = s +" "+num[j];
}  

где s - строка кэша. Затем, после цикла, выполните return s;, чтобы они у вас были все.

3 голосов
/ 16 мая 2011

Если это C #, вы можете использовать:

return String.Join(" - ", num);

Если это Java, вы можете использовать StringUtils.join :

return StringUtils.join(num, " - ");
0 голосов
/ 27 февраля 2018

Раздел 14.1 Нормальное и резкое завершение утверждений стандарта гласит:

Операторы break (§14.15), continue (§14.16) и return (§14.17) вызвать передачу контроля, который может помешать нормальному завершению заявления, которые их содержат.

Если вы хотите вернуть несколько элементов одновременно, то вы можете использовать коллекцию для агрегирования возвращаемых значений.

0 голосов
/ 16 мая 2011

Просто объедините строки перед return. Вам также не нужно String.format. Еще лучше - если это C # или Java, используйте построитель строк.

...