在while循环中非​​法启动类型

时间:2016-08-25 17:30:10

标签: java while-loop

我刚刚开始在java中为学校编程。(我已经用Python和HTML / CSS编写了代码。)我没有太多时间和匆忙做这件事。我不明白我正在做的一切,每一个解释都会受到赞赏。我并没有真正得到静态和公共的东西。无论如何,我目前的主要问题是我的while循环中出现了很多错误。你能帮帮我解决这个问题吗?谢谢。这是我的代码和错误。

import java.util.scanner;

public class happy_tree {
    public static class constants{
    public static final string draw_char = "|";
    public static final int max_height = 40;
    public static final int min_height = 5;
    }
    public static void main(String[] args) {
        tree_height = get_user_input();
    }
    public static class get_user_input{
        Scanner reader = new Scanner(System.in);
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
            System.out.println("Veuillez entrer la hauteur du sapin à dessiner: ");
            tree_height = reader.nextInt();
            if (!reader.hasNextInt()){
                System.out.println("Veuillez entrer un nombre entier.");
            }else if (tree_height>max_height){
                System.out.println("Veuillez entrer une valeur entre 5 et 40.");
            }else if (tree_height<min_height){
                System.out.println("Veuillez entrer une valeur entre 5 et 40.");
            }
        }
        return int tree_height;
    }
}

错误:

Main.java:14: error: illegal start of type
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
        ^
Main.java:14: error: illegal start of type
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
               ^
Main.java:14: error: ')' expected
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
                ^
Main.java:14: error: ';' expected
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
                      ^
Main.java:14: error: invalid method declaration; return type required
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
                       ^
Main.java:14: error: ';' expected
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
                                   ^
Main.java:25: error: illegal start of type
        return int tree_height;
        ^
Main.java:25: error: ';' expected
        return int tree_height;
              ^
Main.java:25: error: <identifier> expected
        return int tree_height;

1 个答案:

答案 0 :(得分:1)

您使用了一个类声明,您需要一个方法:

 public void get_user_input() {
        Scanner reader = new Scanner(System.in);
        while (!reader.hasNextInt() && !tree_height<=max_height && tree_height>=min_height) {
            System.out.println("Veuillez entrer la hauteur du sapin à dessiner: ");
            tree_height = reader.nextInt();
            if (!reader.hasNextInt()){
                System.out.println("Veuillez entrer un nombre entier.");
            }else if (tree_height>max_height){
                System.out.println("Veuillez entrer une valeur entre 5 et 40.");
            }else if (tree_height<min_height){
                System.out.println("Veuillez entrer une valeur entre 5 et 40.");
            }
        }
        return int tree_height;
    }

而不是另一个内部阶级。

除此之外,请遵循类,方法和变量的Java命名约定。在Java中,虽然允许,但使用&#34; underline-seperation&#34;并不常见且不鼓励。样式,称为 snake_case 。在Java中,使用camelcase。也就是说,类名以大写字母开头,并继续小写。在每个单词上,你再次开始大写。

方法和变量以小写开头,常量都是高位。

public class HappyTree { ...  // class : Upper case start, camel case

    public static class Constants {
        public static final String DRAW_CHAR = "|";  // constant, all upper, underscore allowed

        ...


    public void getUserInput() { // methods: start lower, camel case

     ...