我一直在用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 语句必须有一个变量来测试每个条件,例如 if (年龄>=16 && 年龄 <18)。 如果没有这两个变量(age),编译器会吐出 17 个错误和非特定的错误消息。
我将尝试确保在命名变量和类名时遵循约定。 无需使其更加复杂。
再次感谢。
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 语句的条件以正确读取。
Java 中的小于和大于运算符(坦率地说,在大多数编程语言中)分别是 <=
和 >=
,而不是像您的代码当前那样=<
和=>
。
此外,您不能将比较运算符应用于单个变量/值 - 您需要有两个单独的条件,它们之间有一个逻辑运算符。
例如,代替您当前的:
if (age =<16 && <18)
您需要编写:
if (age <= 16 && age < 18)
另请注意,此条件是多余的 - 如果年龄小于或等于 16,则显然小于 18,因此条件可以简化为
if (age <= 16)
您忘记Scanner
包中导入类java.util
并且以错误的方式使用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"语句。
当您发布这些内容时,您必须显示错误消息,但即使没有这些错误消息,也有一些非常明显的错误:
- 测试的形式应该是>=、<= 等(而不是 =>、=<)
-
if (age =<16 && <18)
实际上只是if (a < 16)
但如果你想有 2 个条件,它必须是if (age =<16 && a<18)
- 在类中有一个与类同名的变量是一种不好的形式。