我一直在用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&amp;&amp; age&lt; 18)。如果没有这两个变量(年龄),编译器会使用非特定错误消息吐出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语句的条件以便正确读取。
答案 0 :(得分:2)
Java中的小于和大于运算符(坦率地说,在大多数编程语言中)分别是<=
和>=
,而不是=<
和=>
。代码目前有。
此外,您不能将比较运算符应用于单个变量/值 - 您需要有两个单独的条件,它们之间有逻辑运算符。
例如,而不是你当前的:
if (age =<16 && <18)
你需要写:
if (age <= 16 && age < 18)
另请注意,这种情况是多余的 - 如果年龄小于或等于16,则显然小于18,因此条件可以简化为
if (age <= 16)
答案 1 :(得分:1)
您忘记从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");
}
}
}
答案 2 :(得分:1)
正如用户之前提到的,您错误地使用了您的操作员。另外一件事值得一提的是你设置if语句的方式允许多次执行(我不确定你想要的是什么)。例如,如果age为10,则将执行所有四个println语句,因为它满足所有if语句中的每个条件。如果这不是您的意图,请考虑使用“if-else”语句。
答案 3 :(得分:0)
发布这些内容时必须显示错误消息,但即使没有,也会出现一些非常明显的错误:
if (age =<16 && <18)
实际上只是if (a < 16)
但如果您想要有2个条件则必须if (age =<16 && a<18)