2016-04-04 10 views
-2

enter image description here Mein Programm soll die höchste und niedrigste gpa von 5 Studenten berechnen, ich kann nicht den richtigen Weg finden, um es zum Laufen zu bringen, denn jedes Mal, wenn ich das Programm ausführen gibt mir keinen Wert für getLowest() und getHighest()Kann mir jemand helfen, diese Methode herauszufinden?

+6

aus Bitte verzichten Sie einen Screenshot des Codes veröffentlichen. Tippen Sie sie einfach mit den Codeformatierungs-Tags in die Frage ein. Können wir bitte auch die Gesamtheit von 'getLowest' sehen? – TriskalJM

+0

Ich würde vorschlagen, eine "Liste " oder nur eine "Liste " anstelle einer langen Kette von if-Anweisungen zu verwenden. –

+0

Wahrscheinlich wollen Sie 'lowest = studentx.getGpa()' – Chara

Antwort

0

Haben Sie zuvor lowest und highest initialisiert?

Zum Beispiel, wenn Ihre lowest 0.0 ist, dann hätte kein Schüler gpa niedriger als 0.0.

Außerdem möchten Sie gpa zugreifen, indem student1.getGpa()

1

Gehst Ihre GPAs negativ sein? Wahrscheinlich nicht. Es gibt Ihnen "keinen Wert", es gibt immer 0 zurück, weil Sie lowest auf nichts initialisieren (also effektiv 0), so dass keine der if-Anweisungen eingegeben wird.

public class ClassName { 

    double lowest; // This is set to 0 if you don't assign it. 

    // ... stuff 

    public double getLowest() { 
     if (student1.getGpa() < lowest) { 
      lowest = student1.getGpa(); // this is what you need to use instead 
     } 
     // ... if others are lower 
     return lowest; 
    } 
} 

Die schnelle Lösung wäre double lowest = Double.MAX_VALUE; zu setzen (oder nur die höchstmögliche GPA) einzugeben effektiv die erste if-Anweisung, wenn Sie einen niedrigeren Wert haben.

Die gleichen Regeln gelten für die Variable highest.

1

Ich denke, Sie müssen die "niedrigste" Variable auf den GPA des ersten Schülers setzen, dann vergleichen Sie den Rest der Schüler von diesem Punkt vorwärts auf die niedrigste Variable. Momentan sieht Ihre niedrigste Variable so aus, als ob sie noch nicht initialisiert wurde. Versuchen Sie dies und sehen, ob es funktioniert:

public double getLowest() { 
    lowest = student1.getGpa(); 

    if (student2.getGpa() < lowest) 
     lowest = student2.getGpa; 
    if (student3.getGpa() < lowest) 
     lowest = student3.getGpa(); 
// and so on.... 
} 

Für die getHighest() -Methode würde annehmen, dass Sie die GPA ersten Schüler die höchsten, dann gehen von dort aus, etwa so:

public double getHighest() { 
    highest = student1.getGpa(); 

    if (student2.getGpa() > highest) 
     highest = student2.getGpa; 
    if (student3.getGpa() > highest) 
     highest = student3.getGpa(); 
// and so on.... 
} 
+0

was ist mit getHighest()? –

0

für diese Problem könnte man Math.min verwenden und statt der verwirrenden Math.max wenn Struktur, die Sie etwas schreiben, vergessen zu lassen oder machen Fehler

Sie konnten jeweils zwei Studenten vergleichen, bis Sie auf die niedrigste oder höchste gpa bekommen

wie diese Math.min (student1.getgpa(), student2.getgpa()) und das Ergebnis nehmen und vergleichen es mit anderen

Verwandte Themen