如何在java中声明方法时修复“表达式的非法开始”错误

时间:2019-02-08 15:35:33

标签: java

我在类中声明了一个简单的方法,该方法检查数字是否为三角形,但是在声明该方法时,编译器显示“表达式的非法开始”错误。下面给出的是我的代码

            import java.util.*;
            import java.lang.*;
            import java.io.*;
            class Ideone
            {
                public static void main (String[] args) throws java.lang.Exception
                {

                    int n ;
                    Scanner in = new Scanner (System.in) ;
                    n = in.nextInt() ;
                    static boolean  isTriagular ()
                    {
                        int tn = 1 ;
                        while ( n <= tn  )
                        {
                            if ( tn == n ) 
                            {
                                System.out.println("yes" ) ;
                                System.exit(0) ;
                            }
                            tn += ( tn + 1 ) ;
                        }
                    }
                    // your code goes here
                }
            }

Main.java:14:错误:表达式的非法开头         静态布尔isTriagular()         ^

2 个答案:

答案 0 :(得分:2)

您应将isTriangular移出主要方法,然后在主要方法中调用您的方法,如下所示:

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int n ;
        Scanner in = new Scanner (System.in) ;
        n = in.nextInt() ;

        // your code goes here
        isTriagular();
    }

    static void isTriagular()
    {
        int tn = 1 ;
        while ( n <= tn  )
        {
            if ( tn == n ) 
            {
                System.out.println("yes" ) ;
                System.exit(0) ;
            }
            tn += ( tn + 1 ) ;
        }
    }
}

我将isTriangular的类型更改为void,因为在将某些内容打印到控制台后您将退出整个程序。如果您要从中返回结果以将其设置为等于另一个变量,则只需将其设为布尔值即可。

一个例子是:

boolean myResult = isTriangular();

答案 1 :(得分:0)

您在另一个函数中声明一个函数 将isTriangulaire()声明移至main()函数之外
之后,您可以在main内部调用isTriangulaire()