未知编译错误 java

Unknown compiling error java

我在 Java 中进行了一些在线练习,但我不明白为什么这段代码无法编译。

我忘记了一些我知道的显而易见的事情。

import java.util.Scanner;

class age {

public static void main (String[] args) {

Scanner keyboard = new Scanner (System.in);

int age;

System.out.println("How old are you?");
age = keyboard.nextInt();
System.out.println("You are " + age);

if (age =< 16) {
    System.out.println("You cannot Vote, Drive or Drink Alcohol");
}

if (age =<16 && <18) {
    System.out.println("You can DRIVE, you may NOT Vote or Drink Alcohol");
}

if (age =>18 && <21) {
    System.out.println("You can Drive and Vote, you may NOT Drink Alcohol");
}
if (age =>21){
    System.out.println("You May Drive, Vote and Drink Alcohol");
}

}
}

感谢您的回复,显而易见的(现在)事实是 if 语句必须有一个变量来测试每个条件,例如。如果(年龄 >=16 && 年龄 <18)。如果没有这两个变量(年龄),编译器会吐出 17 个带有非特定错误消息的错误。

我会尽量确保在命名变量和 class 名称时遵循约定。不需要让它变得额外复杂。

再次感谢。

import java.util.Scanner;

class age {

public static void main (String[] args) {

Scanner keyboard = new Scanner (System.in);

int aga;

System.out.println("How old are you?");
aga = keyboard.nextInt();
System.out.println("You are " + aga);

if (aga <= 16) {
    System.out.println("You cannot Vote, Drive or Drink Alcohol");
}

if (aga >=16 && aga <18) {
    System.out.println("You can DRIVE, you may NOT Vote or Drink Alcohol");
}

if (aga >=18 && aga <21) {
    System.out.println("You can Drive and Vote, you may NOT Drink Alcohol");
}
if (aga >=21){
    System.out.println("You May Drive, Vote and Drink Alcohol");
}

}
}

我更改了 if 语句的参数,因此只能满足其中一个,将变量 age 更改为 aga,并重写了 if 语句的条件以正确读取。

当您 post 这些时,您必须显示错误消息,但即使没有这些错误消息,也会出现一些非常明显的错误:

  1. 测试的形式应该是 >=、<= 等(而不是 =>、=<)
  2. if (age =<16 && <18) 实际上只是 if (a < 16) 但是如果你想有 2 个条件它必须是 if (age =<16 && a<18)
  3. 在你的 class 中有一个与你的 class 同名的变量是不好的形式。

Java(坦率地说,在大多数编程语言中)中的小于和大于运算符分别是 <=>=,而不是 =<=> 就像您的代码目前所具有的那样。

此外,您不能将比较运算符应用于单个 variable/value - 您需要有两个单独的条件,它们之间有一个逻辑运算符。

例如,而不是你现在的:

if (age =<16 && <18)

你需要写:

if (age <= 16 && age < 18)

另请注意,此条件是多余的 - 如果年龄小于或等于 16 岁,则显然小于 18 岁,因此条件可以简化为

if (age <= 16)

您忘记从 java.util 包中导入 Scanner class 并且还以错误的方式使用了 less than operator。以下是更正后的片段:

import java.util.Scanner;

class age {

    public static void main(String[] args) {

        Scanner keyboard = new Scanner(System.in);

        int age;

        System.out.println("How old are you?");
        age = keyboard.nextInt();
        System.out.println("You are " + age);

        if (age <= 16) {
            System.out.println("You cannot Vote, Drive or Drink Alcohol");
        }

        if (age <= 16 && age < 18) {
            System.out
                    .println("You can DRIVE, you may NOT Vote or Drink Alcohol");
        }

        if (age <= 18 && age < 21) {
            System.out
                    .println("You can Drive and Vote, you may NOT Drink Alcohol");
        }
        if (age <= 21) {
            System.out.println("You May Drive, Vote and Drink Alcohol");
        }

    }
}

正如用户之前提到的,您错误地使用了您的接线员。另一件毫无价值的事情是您设置 if 语句的方式允许多次执行(我不确定这是您想要的)。例如,如果 age 为 10,则将执行所有四个 println 语句,因为它满足所有 if 语句中的每个条件。如果这不是您的意图,请考虑使用 'if-else' 语句。