2014-03-07 76 views
-3

我有一个类的任务,需要我们从用户的输入,降低最低的分配等级,然后再取几个等级,计算平均值。我已经完成了所有工作,但最后一步是我们必须询问用户是否要为其他学生重复该计划。我所拥有的do while循环将不会执行。年级计算器将不会执行while循环

import java.util.Scanner; 

public class CalculateGrades{ 
public static void main(String [] args){ 
    Scanner sc = new Scanner (System.in); 

    double score; 
    double sum=0; 
    double lowest=100; 

    do{ 
     //ASSIGNMENT GRADES 
     for(int i=1;i<=5;i++){ 
      System.out.println("enter grade for assignment " +i); 
      score=sc.nextDouble(); 
      sum=sum+score; 

      if(score<lowest){ 
       lowest=score; 
      } 
     } 
     sum=sum-lowest; 
     double assignmentAvg= sum/4; 
     System.out.println("After the lowest grade is dropped, your assignment average is " + assignmentAvg); 

     //EXAM GRADES 
     System.out.println("enter grade for exam one"); 
     double exam1=sc.nextDouble(); 
     System.out.println("enter grade for exam two"); 
     double exam2=sc.nextDouble(); 

     //LAB GRADE 
     System.out.println("enter grade for lab"); 
     double lab= sc.nextDouble(); 

     //FINAL EXAM GRADE 
     System.out.println("enter grade for final exam"); 
     double Final=sc.nextDouble(); 

     //AVERAGE 
     double avg= (assignmentAvg*.2)+(exam1*.15)+(exam2*.2)+(lab*.2)+(Final*.25); 

     if(avg >=90){ 
      System.out.println("Your weighted average is " + avg + " and your letter grade is A"); 
     } 
     else if(avg >=80){ 
      System.out.println("Your weighted average is " + avg + " and your letter grade is B"); 
     } 
     else if(avg >=70){ 
      System.out.println("Your weighted average is " + avg + " and your letter grade is C"); 
     } 
     else if(avg >=60){ 
      System.out.println("Your weighted average is " + avg + " and your letter grade is D"); 
     } 
     else{ 
      System.out.println("Your weighted average is " + avg + " and your letter grade is F"); 
     } 

     System.out.println("Would you like to calculate for another student? Press 1 for yes, or any key to terminate"); 
     int again= sc.nextInt(); 

    }while(again==1); 

    // for next student reset sum 
} 
} 
+0

你是通过调试器来学习的吗? –

+0

do ... while循环的全部目的是至少运行一次... – Solace

+0

在与下一个学生一起运行之前,不要忘记将sum设置回零。 –

回答

0

您的again变量超出了范围。检查this。修正是在循环之前声明again