2015-06-16 3 views
1

Я занимаюсь некоторыми онлайн-упражнениями на 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"); 
} 

} 
} 

Спасибо за ответы, Очевидным (сейчас) тот факт, что если заявления должны иметь переменную, чтобы проверить для каждого условия, например. если (возраст> = 16 & & возраст < 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"); 
} 

} 
} 

Я изменил параметры КРПА утверждений, так только один из них может быть удовлетворены, изменил переменный возраст для аг, и переписаны условия, если утверждения правильно читать.

ответ

2

Чем меньше и больше операторов в Java (и, честно говоря, в большинстве языков программирования) являются <= и >=, соответственно, не =< и => как ваш код в настоящее время.

Кроме того, вы не можете обращаться к операторам сравнения с одной переменной/значением - вам нужно иметь два отдельных условия с логическим оператором между ними.

Например, вместо того, чтобы ваш текущий:

if (age =<16 && <18) 

Вы должны были бы написать:

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

Заметим также, что это условие является излишним - если возраст меньше или равен 16 , очевидно, меньше 18, поэтому условие может быть упрощено до

if (age <= 16) 
+0

Да, спасибо, мне нужно больше сосредоточиться ... время кофе. –

0

Вы должны показать сообщение об ошибке, когда вы размещаете их, но даже и без этого есть некоторые довольно явные ошибки:

  1. Форма ваших тестов должно быть> =, < =, и т.д. (а не = > = <)
  2. if (age =<16 && <18) действительно просто if (a < 16), но если вы хотите иметь 2 условия он должен быть if (age =<16 && a<18)
  3. это плохая форма, чтобы иметь переменную внутри вашего класса с тем же именем, что и класс.
+0

Спасибо ... Я забыл что-то подобное, пока я спешу узнать что-то новое. –

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"); 
     } 

    } 
} 
1

Как вы упомянули ранее, вы неправильно использовали оператора.Еще одна вещь, которая ничего не стоит здесь, заключается в том, что способ, которым вы настроили свои операторы if, допускает множество исполнений (что я не уверен, что вы хотели). Например, если возраст равен 10, все четыре оператора println будут выполняться, потому что он удовлетворяет каждому условию во всех операторах if. Подумайте, используя инструкции if-else, если это не ваше намерение.

+0

Хорошая идея Джефф, спасибо, что я не думал об этом, –

Смежные вопросы