Попытка использовать цикл 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;
}
}
}