2012-03-06 3 views
1

Предполагается вернуть стоимость 19 полных мест и осталось 68 студентов! , пожалуйста, помогите, с моим пониманием я возвращаю правильные значения и присваиваю их правильным переменным!Метод возвращает ноль

public class JetCalculator 
{ 
    public static void main(String[] args) 
    { 
     int totalStudents = 3013; 
     int jetCapacity = 155; 
     int jets; 
     int students; 
     jets = calculateJets(jetCapacity, totalStudents); 
     students = calculateStudents(jetCapacity, totalStudents, jets); 

     System.out.println("A total of "+ totalStudents + " student require "+ jets + " full seated jets."); 
     System.out.println("There will be " + students + " students remaining"); 
     System.out.println("_____________________________________________"); 
     System.out.println(jets); 
     System.out.println(jetCapacity); 
     System.out.println(students); 
    } 

    public static int calculateJets(int totalStudents, int jetCapacity) 
    { 
     int fullJets; 
     fullJets = totalStudents/jetCapacity; 
     return fullJets; 
    } 

    public static int calculateStudents(int jetCapacity, int totalStudents, int jets) 
    { 
     int remainingStudents; 
     remainingStudents = jetCapacity * jets; 
     return remainingStudents; 
    } 
} 
+0

Существует более одного метода, который возвращает нуль и что вы ожидаете от него? –

+0

Если это домашнее задание, оно должно быть помечено как таковое. И это поможет, если вы правильно сформулируете проблему. Ответ - 19 полных самолетов (самолет, где заполнены все места), осталось 68 студентов, а не «19 полных мест». –

ответ

1

Вы передаете параметры по фронту.

Вы звоните в calculateJets, пройдя количество студентов, затем: calculateJets(jetCapacity, totalStudents);, но метод просит студентов тогда вместимость: calculateJets(int totalStudents, int jetCapacity).

Это хороший аргумент для согласованности в порядке параметров в интерфейсе класса.

Для отладки это в будущем, попробуйте бросать в println в начале методов, чтобы увидеть, что происходит:

System.out.println("Called calculateJets with totalStudents of " + totalStudents + " and jetCapacity of " + jetCapacity); 
0

На основе чисто по именам методов: Вы хотите сказать, remainingStudents = totalStudents - (jetCapacity * jets);?

5

Вы называете calculateJets этого путем

jets = calculateJets(jetCapacity, totalStudents); 

Но именами аргументов для этого метода означает, что вы переключили порядок вызова

public static int calculateJets(int totalStudents, int jetCapacity) 

Это означает, что вы на самом деле делаете 155/3013, которые 0 с использованием целочисленной арифметики.

+0

Спасибо сто, никогда не чувствовали себя так смущенными, чтобы видеть мою глупую ошибку, но, по крайней мере, я узнаю об этом! спасибо hey –

+0

@JaunLloyd рад, что я мог бы помочь. Если это правильно, вы можете установить зеленый флажок. – paislee

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