Попытка использовать цикл while для продолжения цикла, пока пользователь не введет n (Java)

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

Я хочу спросить другого (да / нет)? и если пользователь вводит y, я спрашиваю, какой номер строки в треугольнике Паскаля?

и все снова и снова.

import java.util.Arrays;
import java.util.Scanner;

public class PascalTriangle
{ 
   public static void main(String[] args) 
   {  
   Scanner scanner = new Scanner(System.in);
   System.out.print("Which line number of pascal's triangle ? ");
   int rowToCompute = scanner.nextInt();   
   System.out.println("Line " + rowToCompute + " of Pascal's Triangle is " + Arrays.toString(computeRow(rowToCompute)));
   System.out.println("Another (y/n)?");
   String another = scanner.nextLine();

   while(another.equalsIgnoreCase("y"))
   {
      System.out.print("Which line number of pascal's triangle ? ");
   }
}

public static int[] computeRow(int rowToCompute)
{
  if(rowToCompute == 1) 
  {
    int[] arr1 = new int[1];    
      arr1[0] = 1;
    return arr1;
  }

  else
  {
     int[] lastRow = computeRow(rowToCompute - 1);
     int[] thisRow = computeNextRow(lastRow);

       return thisRow;
  }

}//ends computeRow method

public static int[] computeNextRow(int[] previousRow)
{
     int[] newAr = new int[previousRow.length + 1];

     newAr[0] = 1;
     newAr[previousRow.length] = 1;

     for(int i = 1; i < previousRow.length; i++)
     {
        newAr[i] = previousRow[i-1] + previousRow[i];
     }

      return newAr;
  }//ends computeNextRow method 

}//end pascal triangle class

1 ответ

Решение

Вы должны попробовать что-то вроде этого.

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    while (true) { // infinity loop, because you want ask many times
        System.out.print("Which line number of pascal's triangle ? ");
        int rowToCompute = scanner.nextInt();
        System.out.println("Line " + rowToCompute + " of Pascal's Triangle is " + Arrays.toString(computeRow(rowToCompute)));

        System.out.println("Another (y/n)?");
        String another = scanner.next();

        if (!another.equalsIgnoreCase("y")) { // if answer is other then 'y', break the loop
            break;
        }
    }
}
Другие вопросы по тегам