2015-09-02 10 views
-7

Вопрос: Как я могу исправить свой код. Что вызывает проблемы/Могу ли я привести пример. НЕ ответ. Одна из моих задач являются: «Признаться, но не инициализировать два поля»Основы Java: Требуется int [], Найдено int (Плохие операции)

Я новичок в Java программирования, поэтому, пожалуйста, держите ваши ответы просто читать.

Basic Outline: Я пытаюсь написать основную программу, которая считывает количество лет прослужил и отображает на экране, сколько дней отпуска они будут получать.

Сообщение об ошибке: текущие сообщения об ошибках Я получаю это:

Линия 27: плохих типов операндов для бинарного оператора '> =', первый тип: INT [], вторая Тип: INT

линия 28: несовместимые типы необходимые: Int найдено: Int []

Line 30: плохих типов операндов для бинарного оператора '> =' , первый тип: Int [] , второй тип: INT

Линия 36: достиг конца файла при разборе

Вот мой код:

public class VacationScale { 
    public int[] vacationDays; 
    public int[] yearsOfService; 


    public void setVacationScale() { 
     vacationDays = new int[7]; 
     vacationDays[0] = 10; 
     vacationDays[1] = 15; 
     vacationDays[2] = 15; 
     vacationDays[3] = 15; 
     vacationDays[4] = 20; 
     vacationDays[5] = 20; 
     vacationDays[6] = 25; 
    } 

    public void displayVacationDays() { 
     if (yearsOfService >= 0 && yearsOfService < 6) { 
      System.out.println("Number of Vacation Days: " + vacationDays[yearsOfService]); 

    } else if (yearsOfService >= 6) { 
      System.out.println("Number of Vacation Days: " + vacationDays[6]); 

    } else { 
     System.out.println("Invaild Years if Service"); 
    } 
} 

Любая помощь очень ценится.

+2

Вы определили yearsOfService как массив int, но используете его как простой int. Измените его с int [] на int. –

+0

вам не хватает parantheis для конца метода 'displayVacationDays', и вы пытаетесь сравнить массив' int' с одним int, что невозможно. – SomeJavaGuy

+1

Я думаю, вы забыли задать вопрос. (И подразумеваемый «исправить мой код» не является реальным вопросом) –

ответ

0
if (yearsOfService >= 0 && yearsOfService < 6) { 

Здесь, когда вы используете логические операторы, вы не можете сравнивать массив yearsOfService с числом.

В зависимости от вашего требования, вы должны объявить yearsOfService как int.

+0

Так что бы вы сказали что-то одно: строки if: yearsOfService [0]> = 0 && yearsOfService [6] <6) {' – BravoTangoCC

+0

Да, это тоже должно быть скомпилировано. Но сначала инициализируйте массив yearsOfService чем-то. – Amila

+0

Одна из моих задач: «Объявить, но не инициализировать два поля» – BravoTangoCC

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