在java编程中使用方法

时间:2016-06-27 17:06:54

标签: java

import java.util.Scanner ;
public class ProcessNumbers
{
    public static void main( String[] args )
    {
        Scanner in = new Scanner(System.in) ;
        System.out.print("Please enter an integer between 6 and 12, inclusive: ") ;
        int num = in.nextInt() ;
        System.out.print(num) ;
        System.out.println();
        boolean result = shouldProcess(num);
        processInput(result) ;
    }
    public static boolean shouldProcess(int n)
    {
        if (n>=6 && n<12)
        {
            return true;
        }
        else
        {
            return false;
        } 
    }
    public static void processInput(boolean result2)
    {
        if (result2 == true)
        {
            int sum = findSum(num) ; 
            public static void findSum(int num)
            {
                int sum = 0 ;
                for (int i = 1; i <=num; i++0)
                {
                    sum +=i ;
                    System.out.println(sum) ;
                }     
            }
            else 
            {
                System.out.println("Number is outside of acceptable range") ;
            }
        }  
    }
}

使用此代码我试图让用户输入一个数字。如果给定的数字在6到12之间(包括6和12),计算机将读取此数字并在方法shouldProcess中返回一个布尔值。如果它不在这两个数字之内,它将返回false。接下来我使用了第一个方法shouldProcess来使用方法processINput来判断它是否可以计算总和,只有当shouldProcess返回true时才会这样。

当我尝试计算总和时,我在我的shouldProcess方法块中遇到了这些错误

 [File: /ProcessNumbers.java Line: 34, Column: 10] illegal start of     expression
[File: /ProcessNumbers.java Line: 34, Column: 17] illegal start of expression
[File: /ProcessNumbers.java Line: 34, Column: 23] ';' expected
[File: /ProcessNumbers.java Line: 34, Column: 41] '.class' expected
[File: /ProcessNumbers.java Line: 34, Column: 44] ';' expected
[File: /ProcessNumbers.java Line: 36, Column: 21] ';' expected
[File: /ProcessNumbers.java Line: 37, Column: 38] ')' expected
[File: /ProcessNumbers.java Line: 37, Column: 39] ';' expected
[File: /ProcessNumbers.java Line: 40, Column: 37] ';' expected
[File: /ProcessNumbers.java Line: 43, Column: 6] 'else' without 'if'
[File: /ProcessNumbers.java Line: 47, Column: 3] reached end of file while parsing
[File: /ProcessNumbers.java Line: 48, Column: 1] illegal character: \26

3 个答案:

答案 0 :(得分:2)

这些是您的代码尝试编译时的编译器错误,通常这与错误的语法有关,例如System.out.println(sum)没有;来指示行的结束。

还有一些其他的事情你可能想要改变,而不是使用shouldProcees方法和processInput方法,你最好将shouldProcess中的if语句移动到main方法并确定是否在那里处理processInput。然后你可以简单地使用if (n>=6 && n<=12) { processInput();,它也可以让你清理过程输入法,因为它已经知道结果为真,你可以删除if (result2 == true)

我不认为您可以在java中使用嵌套方法,因此您必须将findSum移动到单独的方法中,或者只是删除findSum方法并直接在processInput方法中进行计算。

您可能需要考虑使用通常可以随时编译并检测语法错误的IDE。

答案 1 :(得分:1)

您应该缩进if / else和方法块,只是为了检查正确排列的大括号。我觉得你还有一个闭合支撑 - } - 最后都没有了。

例如,您的代码应如下所示:

public class... {
    public static void main... {
        if... {
            if... {
            ...
            }
        }
    }
}

这样,您可以非常轻松地跟踪您的牙箍。

答案 2 :(得分:1)

您正在函数findSum中定义函数processInput,这是不允许的,并且实际上不需要该函数。检查此代码:

import java.util.Scanner;
public class ProcessNumbers
{
    public static void main( String[] args )
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Please enter an integer between 6 and 12, inclusive: ");
        int num = in.nextInt();
        System.out.print(num);
        System.out.println();
        boolean result = shouldProcess(num);
        processInput(result, num); // passing the result and num
    }

    public static boolean shouldProcess(int n) 
    {
        if (n>=6 && n<12)
        {
            return true;
        }
        else
        {
            return false;
        } 
    }

    public static void processInput(boolean result2, int num) // added int num argument
    {
        if (result2 == true)
        {
            //int sum = findSum(num);

            //public static void findSum(int num) // not allowed
            //{
                int sum = 0; // missed the semi-colon
                for (int i = 1; i <=num; i++)
                {
                      sum +=i;
                }
                System.out.println(sum); // missed the semi-colon
            //}
        }
        else 
        {
            System.out.println("Number is outside of acceptable range");
        }
    }  
}