2015-07-14 5 views
3

Я не уверен, правильно ли я пишу это. Я проверил свои заметки, чтобы убедиться, что все соответствующие символы используются, но я продолжаю получать такие ошибки, как: ';' ожидаемого, а не заявления. Я что-то пропустил???Я написал это правильно? Я продолжаю получать ошибки компилятора

импорт java.util.Scanner;

общественного класса EmployeeAbsences { государственной статической силы основных (String [] арг) {

Scanner keyboard = new Scanner (System.in); 

employees = showEmployees(); 
totaldays = getDays(employees); 
average = averageDays(employees, totaldays); 

System.out.print("Your employees averaged " + average + " days absent."); 


int showEmployees(); 

{ 
    int employees; 

    System.out.print("How many employees do you have?"); 
    employees = keyboard.next.Int(); 

    while (employees > 0) 
    { 
     if (employees < 0) { 
      System.out.print("Please enter a positive number."); 
     } 
     else 
      { 
       return employees; 
      } 
    } 


} 

int getDays(int employees); 

{ 
    int totaldays = 0; 
    int days; 

    for (int x = 0; x <= days; x++) 
    { 
     System.out.print("How many days was Employee #" + x + " absent?"); 
     days = keyboard.next.Int(); 
     totaldays = days; 
     totaldays = totaldays += days; 
    } 

    while (days > 0) 
    { 
     if (days < 0) { 
      System.out.print("Please enter a positive number."); 
     } 
     else 
      { 
       return totaldays; 
      } 
    } 

} 

double averageDays(employees, totaldays) 

{ 
    int totaldays; 
    int employees; 
    double average; 

    average = totaldays/employees; 
    { 
     return average; 
    } 
} 

}

+0

здесь ошибка 'Int showEmployees();' удалить ' ; ' – Rustam

+0

Пожалуйста, не обновляйте свой вопрос таким образом, чтобы он аннулировал ответы. Также дважды проверьте, чтобы код был правильно отформатирован. – Emz

ответ

1

Отбросьте точку с запятой из int averageDays(employees, totaldays); и т.д.

+0

спасибо, я исправил их – user170984

5

Ваши методы (например showEmployees) не должны находиться внутри основного метода, и они не должны иметь полуколону после их объявления:

Изменить

int showEmployees(); 
{ 
    ... 
} 

в

int showEmployees() 
{ 
    ... 
} 

и переместить его за пределы основного метода.

То же самое относится к getDays и averageDays.

Также кажется, что вашим методам не хватает некоторых операторов возврата. Каждый путь выполнения должен иметь оператор возврата. Например, getDays имеет оператор возврата только внутри цикла while. Должно быть хотя бы еще один оператор return после цикла while, если цикл while никогда не вводится.

+0

спасибо! я исправил их – user170984

+0

@ user170984 Добро пожаловать – Eran

1

для каждого метода вы пишете, вы должны опустить ;, например:

int showEmployees() 
    { 
     int employees; 

     System.out.print("How many employees do you have?"); 
     employees = keyboard.next.Int(); 

     while (employees > 0) 
     { 
      if (employees < 0) { 
       System.out.print("Please enter a positive number."); 
      } 
      else 
       { 
        return employees; 
       } 
     } 
    } 
+0

спасибо, я исправил их – user170984

0
  1. отброшенной точка с запятой от всех объявлений метода
  2. Declare типа employees, totaldays и average в начале
  3. Большинство функций имеют возвращаемое значение внутри de while, вы должны что-то вернуть, также если он не попадает в while stat ление.
  4. averageDays функция возвращая double, но в своем заявлении он говорит, что возвращается в getDays функции int
  5. вам необходимо инициализировать days переменную
+0

спасибо, я исправил их – user170984

+0

приветствуются –

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