为什么我收到错误'非法启动类型'

时间:2013-11-12 09:52:12

标签: java if-statement

import java.util.Scanner;

public class ExcerciseCJava {
    public static void main(String[] args) {
        Scanner user_input = new Scanner (System.in);

        int user_age;
        System.out.print("Enter you're age");
        user_age = user_input.nextInt();

        if (user_age <= 10) {
            System.out.println("You are between 0 and 10");
        }else if (user_age > 10 && < 20) {   //<-(Error is showing on this line)
            System.out.println("You are between 11 and 20");
        }
    }
}

6 个答案:

答案 0 :(得分:2)

替换

if (user_age > 10 && < 20)

if (user_age > 10 && user_age < 20)

答案 1 :(得分:1)

由于语法不正确,请尝试此操作

else if (user_age > 10 && user_age < 20) {   

这是如何执行的?

  1. 计算第一个布尔语句user_age > 10

  2. 和第二个声明user_age < 20

  3. 并使用两者执行&&

  4. 因此,在您的情况下,第二个语句变为< 20哪个语法在语法上是不正确的,因为没有什么可以与20进行比较。

答案 2 :(得分:0)

这是一个语法错误。

 else if (user_age > 10 && < 20){...} 

应该是

 else if (user_age > 10 && user_age < 20){...}
                           ^^^^^^^^

答案 3 :(得分:0)

else if (user_age > 10 && < 20)

应该是

else if (user_age > 10 && user_age < 20)

在常规数学术语中,你这样做

6 > x > 2 , meaning x i greater than 2 or less than 6

在Java中,您将每个逻辑分开

(user_age > 10 && user_age < 20)

答案 4 :(得分:0)

更改

if (user_age > 10 && < 20)

with:

if (user_age > 10 && user_age < 20)

答案 5 :(得分:0)

您必须明确指定比较内容:

else if (user_age > 10 && user_age < 20) {

但请注意,您已在之前的条件中确定了user_age > 10

if (user_age <= 10) {

所以你不需要再检查一下:

if (user_age <= 10) {
    System.out.println("You are between 0 and 10");

} else if (user_age < 20) {
    // user_age was not <= 10, it must be > 10
    System.out.println("You are between 11 and 19");

} else {
    System.out.println("You are 20 or older");
}