为什么javac告诉我非法表达的开始?

时间:2016-04-13 23:09:04

标签: javac

这是我的代码,我不知道我做错了什么。我尝试了很多不同的东西,例如将公共修饰符从get中取出。但我仍然得到同样的东西。这个程序应该打印出pascal三角形中的第N个数字行,以便我使用递归一点点。

import java.util.*;

public class Triangle{

   private int lineNumber, count;
   private int[] num;

   public Triangle(){

      lineNumber = 1;
   }
   public Triangle(int n){

      set(n);
   }
   public void set(int n){

      if(n < 1){

         lineNumber = 1;
      }
      else{

         lineNumber = n;
      }
      public int get()//Triangle.java:26: error: ';' expected //
      {
         return lineNumber;
      }
      private void pascal(int[] row){ //Triangle.java:30: error: illegal start of expression

         if(count >= lineNumber){

            return;
         }
         num = new int[row.length + 1];
         num[0] = 1;
         for(int i = 1; i < row.length; i++){

            num[i] = row[i - 1] + row[i];
         }
         num[row.length] = 1;
         count ++;
         pascal(num);
         return;
      }
      public int[] output(){

         count = 1;
         num = new int[count];
         num[0] = 1;

         pascal(num);
         return num;
      }
      public static void main(String[] args){

         int i,userNum;

         Scanner scnr = new Scanner(System.in);
         System.out.println("Enter a number to get the nth line of"+
                            " Pascal's Triangle." );
         userNum = input.nextInt();

         PascalTriangle triangle = new Triangle(userNum);
         int[] result = triangle.output();

         System.out.println("\n Line " + triangle.get() + " of "
                             + "Pascal's Triangle is ");
         for(i = 0; i < result.length; i++){

            System.out.println(result[i] + " ");
         }
      }
   }
}

1 个答案:

答案 0 :(得分:0)

在set()方法中的else语句之后还需要一个结束括号。尝试在

之前添加结束}
else{

     lineNumber = n;
    }
  }
  public int get()//Triangle.java:26: error: ';' expected //