解析

时间:2015-05-15 05:55:42

标签: java

这是我的Java类

import java.util.Scanner;

public class first {

    public static void main(String args[]);

    int right_number, user_input;

    right_number = 6;

    Scanner in = new Scanner(System.in);

    System.out.println("Enter a number between 1 and 10");
    user_input = input.nextInt();

    if(user_input = right_number) {
        System.out.println("That is the right number!");
    }
    else {
        System.out.println("Aww, try again by typing java first into commad line.");
    }
}

一直这样说:

  

解析时错误到达文件末尾。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

这是第一个问题:

public static void main(String args[]);

你实际上并没有在这里声明一个方法体。它应该是:

public static void main(String[] args) {
    // Method body goes here
}

您应该只在抽象方法的方法声明的末尾使用;(包括那些在接口中隐式抽象的方法)。如果您还没有抽象方法,那么暂时忽略它 - 基本上使用大括号来提供方法体。

String[] args vs String args[]不是问题,但是这个版本首选的是样式...就像命名你的班级First而不是{ {1}} ...这里还有其他各种风格问题,但我现在就把它留在那里。)

您的类“尝试”在first语句之后直接结束的事实应该是一个警告铃声 - else语句只能出现在方法或构造函数中,所以是一个括号来关闭该方法/构造函数,然后是一个括号来关闭类声明本身。同样,缩进应该警告你 - 假设你使用IDE来执行缩进,任何时候你发现自己编写的方法体语句只比类声明更进一步缩进,这表明你有问题某处 - 查找文件以查看它的起始位置。

答案 1 :(得分:1)

代码有很多错误,如:

1

public static void main(String args[]);

应该是

public static void main(String args[]) 
{
// every thing should be inside this
}

2

您已将您的扫描仪对象声明为in,但您正在user_input = input.nextInt();user_input = in.nextInt();

3

if(user_input = right_number)应该说if(user_input == right_number)因为=是赋值运算符,要比较你应该使用==

这是正确的代码:

import java.util.Scanner;

public class Main {

    public static void main(String args[]) {
        int right_number, user_input;
        right_number = 6;

        Scanner in = new Scanner(System.in);

        System.out.println("Enter a number between 1 and 10");
        user_input = in.nextInt();

        if(user_input == right_number) {
            System.out.println("That is the right number!");
        }
        else {
            System.out.println("Aww, try again by typing java first into commad line.");
        }
    }
}