Java - возвращает информацию из цикла for - PullRequest
0 голосов
/ 07 февраля 2012

Итак, что я хочу сделать, это вернуть:

Ввод createMixedString(Hello,there,3)

, и я хочу вывести HellothereHellothereHellothere

Моя проблема в том, когда он запускаетсяпросто возвращает Hellothere, как будто программа не видела переназначения, которое я сделал внутри цикла for.

public static String createMixedString(String s1, String s2, int n) {
    String result = s1+s2;

    for (int i=0;i>=n;i++) {
        result = result+s1+s2;
    }
    return result;
}

Ответы [ 6 ]

1 голос
/ 07 февраля 2012

Почему бы не использовать StringUtils.repeat, он сделает то же самое для вас, чтобы вы могли сделать следующее:

public static String createMixedString(String s1, String s2, int n) {
    String result = s1 + s2;
    return StringUtils.repeat(result, n);
}

Это должно работать так, как вы хотите

1 голос
/ 07 февраля 2012

Рассмотрим следующее:

  public static String createMixedString(String s1, String s2, int n) {
      StringBuilder s = new StringBuilder();
      for (int i = 0; i < n; i++) {
          s.append(s1);
          s.append(s2);
      }
      return s.toString();
  }

Обратите внимание, что проверка в условии проверяет, является ли i все еще меньше, чем n, в отличие от проверки в то время как i >= n, которая не 'не имеет смысла.Кроме того, использование StringBuilder будет гораздо более эффективным, если вы объединяете строки.

1 голос
/ 07 февраля 2012

Ваше условие неверно, должно быть i как в:

public static String createMixedString(String s1, String s2, int n) {
    String result = s1+s2;

    for (int i=0; i < n; i++) {
        result = result+s1+s2;
    }
    return result;
}
0 голосов
/ 07 февраля 2012

проблема заключается в конце цикла, замените его на i

0 голосов
/ 07 февраля 2012

Возможно, условие цикла i>=n должно быть i<=n.

0 голосов
/ 07 февраля 2012

0 >= 3 условие никогда не удовлетворяет. Стоит i < n. Поскольку я начинаю с 0, оно должно быть < не <= </p>

    for (int i=0;i<n;i++) {    
     result = result+s1+s2;  
   }       
...