2016-04-04 9 views
-2

enter image description here 私のプログラムは5人の学生の中で最高と最低のgpaを計算することになっています。私はポルグラムを実行するたびにgetLowest()とgetHighest()誰かがこの方法を理解するのに役立つことができますか?

+6

と比較したコードのスクリーンショットを投稿はご遠慮ください。コードの書式設定タグを使用して質問に入力してください。 また、 'getLowest'の全体をご覧ください。 – TriskalJM

+0

if文の長い連鎖ではなく、 'List 'または単に 'List 'を使うことをお勧めします。 –

+0

getHighest()の場合、 'lowest = studentx.getGpa()' – Chara

答えて

0

手前にlowesthighestを開始しましたか?

たとえば、lowestが0.0の場合、gpaは0.0未満になりません。

また、あなたがstudent1.getGpa()

1

によりGPAにアクセスしたいあなたGPASはマイナスになるだろうしていますか?おそらくそうではありません。 lowestを何もしない(したがって実質的に0に)初期化するため、常に0を返します。したがって、if文は一切入力されません。

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

クイックフィックスがdouble lowest = Double.MAX_VALUE;(または単に可能な限り最高のGPA)を設定するために効果的に入ることであろう最初のif文あなたは低い値を持っている場合。

highest変数にも同じ規則が適用されます。

1

あなたは最初の生徒のGPAに「最低」の変数を設定し、残りの生徒をその点から最も低い変数と比較する必要があると思います。今のところ、あなたの最も低い変数はまだ初期化されていないようです。これを試してみて、それが動作するかどうかを確認:getHighest()メソッドについては

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

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

を、あなたが最初に学生のGPAが最高だったと仮定します、そしてそのように、そこから移動します。このため

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

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

はどうでしょうか? –

0

を問題構造場合はmath.minを使用し、混乱するのではなく、math.maxことができ、あなたが何かを書いたり、ミス

を作るために忘れさせるあなたが最低または最高のGPA

に到達するまで、あなたが各2人の学生を比較することができこの math.min(student1.getgpa()、student2.getgpa()) よう

と結果を取ると、他の人

関連する問題