Как повторить строку в jgrasp без использования цикла

Я не могу найти способ повторить так, чтобы это выглядело как

xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
import java.util.Scanner;
public class Square
{
    public static void main (String [] args)
    {
        Scanner kb = new Scanner (System.in);
        System.out.print("Enter a positive integer no greater than 15: ");
        double square= kb.nextDouble();
        double k=1;
        String i= "";
        while (k<square+1)
        {
            k++;
            i=i+"X";
        }
    }
}

Конечным результатом должны быть буквы X в форме квадрата, где, если бы вы ввели 8 для квадратной переменной, это было бы 8 поперек и 8 по вертикали. Я знал, что результат будет неправильным, я просто не знаю, как сделать так, как указано выше. Этот вывод выглядит как

x
xx
xxx
xxxx
xxxxx
xxxxxx
xxxxxxx
xxxxxxxx

если я использую 8 как квадрат


person Mike Aruba    schedule 23.04.2015    source источник
comment
Почему запрет на цикл? В вашем фрагменте уже есть один.   -  person    schedule 23.04.2015
comment
если честно я не очень понимаю о чем вы спрашиваете   -  person Mike Aruba    schedule 23.04.2015
comment
Я не думаю, что смогу сделать это намного яснее. В заголовке написано «без использования цикла», но в вашем фрагменте кода уже есть цикл while.   -  person    schedule 23.04.2015
comment
хорошо, я понимаю, что вы спрашиваете. моя проблема заключается в получении этого результата при использовании цикла. прямо сейчас лучшее, что я могу получить, это   -  person Mike Aruba    schedule 23.04.2015
comment
Используйте вторую петлю. Создайте строку в первом цикле и повторно напечатайте ее во втором. Или вложить один цикл в другой и печатать символы внутренним циклом, а строки внешним.   -  person    schedule 23.04.2015
comment
сработало отлично спасибо   -  person Mike Aruba    schedule 23.04.2015


Ответы (2)


Используйте вторую петлю. Создайте строку в первом цикле и повторно напечатайте ее во втором. Или вложить один цикл в другой и печатать символы внутренним циклом, а строки внешним.

person Mike Aruba    schedule 23.04.2015

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

Проблема в том, что первая итерация k будет равна 1 для первой итерации, что означает, что она будет печатать только 1 X. Следующая итерация будет печатать только 2 X, опять же, потому что вы каждый раз увеличиваете k на 1. Цикл while, основанный на k. Это у вас так настроено.

Один из способов сделать это - использовать 2 вложенных цикла. если ввод = 8,

  for(int i = 0; i<input; i++){
     System.out.println();        // <----- This just jumps to next line
      for(int k = 0; k<input; k++){
         System.out.print("X");

      }     
  }

выход

ХХХХХХХ
ХХХХХХХ
ХХХХХХХХ
ХХХХХХХХ
ХХХХХХХХ
ХХХХХХХХ

person Darth Sid    schedule 22.07.2015