尝试使用while循环来保持循环,直到用户输入n(Java)

时间:2015-11-21 20:58:19

标签: java loops while-loop pascals-triangle

我尝试使用while循环继续询问用户是否需要某个pascal三角形的某一行。我不知道在哪里放置我的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 个答案:

答案 0 :(得分:0)

你应该尝试这样的事情。

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;
        }
    }
}