Java 分析时到达文件结尾,,

Java 分析时到达文件结尾,,,java,file,parsing,Java,File,Parsing,我似乎无法消除这个错误。它说在最后一行:解析时到达文件的末尾,这里有人能帮我吗 class scanner { class Factorial { public static void main(String args[]) { int n, c, fact; System.out.println("Enter an integer to calculate it's factorial");

我似乎无法消除这个错误。它说在最后一行:解析时到达文件的末尾,这里有人能帮我吗

class scanner
{ 
    class Factorial
    {
        public static void main(String args[])
        {
            int n, c, fact;

            System.out.println("Enter an integer to calculate it's factorial");
            Scanner in = new Scanner(System.in);

            n = in.nextInt();

            if ( n < 0 )
                System.out.println("Number should be non-negative.");
            else
            {
                for ( c = 1 ; c <= n ; c++ )
                    fact = fact *c;

                System.out.println("Factorial of "+n+" is = "+fact);
            }
        }
    }
类扫描程序
{ 
类阶乘
{
公共静态void main(字符串参数[])
{
int n,c,事实;
System.out.println(“输入一个整数以计算其阶乘”);
扫描仪输入=新扫描仪(系统输入);
n=in.nextInt();
if(n<0)
System.out.println(“数字应为非负数”);
其他的
{
对于(c=1;c您在末尾缺少一个括号“}”,这就是它抛出该错误的原因

更正了代码语法,也解决了其他错误

编辑:正如@Pshemo所说,您不需要“类扫描程序”,所以我对此进行了评论,但您可以真正删除评论的内容

import java.util.Scanner;

//public static class scanner
//{ 
    public static class Factorial
    {
        public static void main(String args[])
        {
            int n, c, fact;

            System.out.println("Enter an integer to calculate it's factorial");
            Scanner in = new Scanner(System.in);

            n = in.nextInt();

            if ( n < 0 )
                System.out.println("Number should be non-negative.");
            else
            {
                for ( c = 1 ; c <= n ; c++ )
                fact = fact *c;

                System.out.println("Factorial of "+n+" is = "+fact);
            }
        }
    }
//}
import java.util.Scanner;
//公共静态类扫描器
//{ 
公共静态类阶乘
{
公共静态void main(字符串参数[])
{
int n,c,事实;
System.out.println(“输入一个整数以计算其阶乘”);
扫描仪输入=新扫描仪(系统输入);
n=in.nextInt();
if(n<0)
System.out.println(“数字应为非负数”);
其他的
{

对于(c=1;c)开始使用缩进。这将使您更容易发现错误。您是否真的希望有嵌套类(当前阶乘在扫描程序中)另一件事:不要用已经使用过的名称来调用你的类,就像在你的例子中Java已经有了
Scanner
类-在你忘记导入的包
Java.util
中-所以你的类不应该被称为
Scanner
。嗯,好吧,我把它放在那里了,但是现在我得到了另一种不同类型的错误,它是:Line:10 ca找不到符号符号:类扫描程序位置:类扫描程序。阶乘行:10找不到符号符号:类扫描程序位置:类扫描程序。阶乘行:5内部类扫描程序中的非法静态声明。阶乘修饰符“static”仅允许在常量变量声明中读取错误。您需要导入“Scanner”库。如果需要“public static void main()”,则需要将类声明为“public static”。我也已更新了解决这些错误的答案。没有“static outer class
这样的东西(除非它也在其他类内)所以你应该跳过
scanner
类声明中的
static
。@Pshemo没错。我想他误解了“导入扫描器”和“类扫描器”。所以我编辑了我的答案