2016-05-22 3 views
0

私はインストラクターが成績を入力し、その成績の平均を出し、その特定の生徒の平均の合計を与えるプログラムを作成しています。私はそれをほぼ完全にプログラムしました。私が抱えている唯一の問題は、ユーザが終了するために「Enter」を押すまで、プログラム全体を連続的に繰り返す方法を考え出すことです。私は以下の私のコードを含めました(とそれ以下の私の新しいコードでそれを更新しました):あなたがこれを行うことができ継続的にプログラムループを持っています

import java.util.Scanner; 

public class StudentGrades { 
    public static void main(String[] args){ 

    //Declare Scanner and instantiate keyboard 
    Scanner keyboard; 
    keyboard = new Scanner(System.in); 

    //String to hold student name 
    String StudentName; 

    //Variables to hold number of grades entered 
    int countOfGrades=0; 
    int countOfGrades2=0; 

    //Variables to hold individual grade inputted 
    float inputtedGrade=0; 
    float inputtedTestGrade=0; 
    float inputtedExamGrade=0; 

    //Variables to hold the total sum of grades entered 
    float totalSumOfGrades=0; 
    float totalSumOfGrades2=0; 

    //Prompt user for input 
    System.out.print("Input student name: "); 
    StudentName = keyboard.nextLine(); 

    //Prompt the user for grade 
    System.out.print("Input student's homework/quiz grade: "); 

    //Get grade from user 
    inputtedGrade = keyboard.nextFloat(); 

    //Loop while grade is greater than zero 
    while(inputtedGrade > 0){ 

     //Add grade to sum total 
     totalSumOfGrades=totalSumOfGrades+inputtedGrade; 

     //Increment counter of grades 
     countOfGrades++; 

     //Prompt user for grade 
     System.out.print("Input student's homework/quiz grade: "); 

     //Get grade from user 
     inputtedGrade=keyboard.nextFloat(); 

    }//Ending bracket of while loop 

    //Calculate and output average of grades 
    System.out.print("Average homework/quiz grade is: "); 
    System.out.println((totalSumOfGrades/countOfGrades)); 

    //Prompt user for test score 
    System.out.print("Input student's test grade: "); 
    inputtedTestGrade = keyboard.nextFloat(); 

    //Loop while grade is greater than zero 
    while(inputtedTestGrade > 0) { 

     //Add grade to sum total 
     totalSumOfGrades2=totalSumOfGrades2+inputtedTestGrade; 

     //Increment counter of grades 
     countOfGrades2++; 

     //Prompt user for grade 
     System.out.print("Input student's test grade: "); 

     //Get grade from user 
     inputtedTestGrade=keyboard.nextFloat();  
    }//Ending bracket of while loop 

    //Calculate and output average of grades 
    System.out.print("Average test grade is: "); 
    System.out.println((totalSumOfGrades2/countOfGrades2)); 

    //Prompt user for exam score 
    System.out.print("Enter student's exam grade: "); 
    inputtedExamGrade=keyboard.nextFloat(); 

    //Double to hold average values then convert to int 
    double avgHomework = (totalSumOfGrades/countOfGrades)*.2; 
    double avgTest = (totalSumOfGrades2/countOfGrades2)*.5; 
    double avgExam = (inputtedExamGrade)*.3; 
    float avgHW = (float) avgHomework; 
    float avgT = (float) avgTest; 
    float avgEx = (float) avgExam; 

    //Output student grade 
    System.out.println("The grade for this student is: " +(avgHW+avgT+avgEx)); 

    //Close keyboard 
    keyboard.close(); 

    }//Ending bracket of method main 

}//Ending bracket of class StudentGrades 


import java.util.Scanner; 

public class StudentGrades { 
    public static void main(String[] args){ 
    while (true){ 

    //Declare Scanner and instantiate keyboard 
    Scanner keyboard; 
    keyboard = new Scanner(System.in); 

    //Strings to hold values 
    String StudentName; 
    String cont; 

    //Variables to hold number of grades entered 
    int countOfGrades=0; 
    int countOfGrades2=0; 

    //Variables to hold individual grade inputted 
    float inputtedGrade=0; 
    float inputtedTestGrade=0; 
    float inputtedExamGrade=0; 

    //Variables to hold the total sum of grades entered 
    float totalSumOfGrades=0; 
    float totalSumOfGrades2=0; 

    //Prompt user for input 
    System.out.print("Input student name: "); 
    StudentName = keyboard.nextLine(); 

    //Prompt the user for grade 
    System.out.print("Input student's homework/quiz grade: "); 

    //Get grade from user 
    inputtedGrade = keyboard.nextFloat(); 

    //Loop while grade is greater than zero 
     while(inputtedGrade > 0){ 

     //Add grade to sum total 
     totalSumOfGrades=totalSumOfGrades+inputtedGrade; 

     //Increment counter of grades 
     countOfGrades++; 

     //Prompt user for grade 
     System.out.print("Input student's homework/quiz grade: "); 

     //Get grade from user 
     inputtedGrade=keyboard.nextFloat(); 

    }//Ending bracket of while loop 

    //Calculate and output average of grades 
    System.out.print("Average homework/quiz grade is: "); 
    System.out.println((totalSumOfGrades/countOfGrades)); 

    //Prompt user for test score 
    System.out.print("Input student's test grade: "); 
    inputtedTestGrade = keyboard.nextFloat(); 

    //Loop while grade is greater than zero 
    while(inputtedTestGrade > 0) { 

      //Add grade to sum total 
      totalSumOfGrades2=totalSumOfGrades2+inputtedTestGrade; 

      //Increment counter of grades 
      countOfGrades2++; 

      //Prompt user for grade 
      System.out.print("Input student's test grade: "); 

      //Get grade from user 
      inputtedTestGrade=keyboard.nextFloat();  
    }//Ending bracket of while loop 

    //Calculate and output average of grades 
    System.out.print("Average test grade is: "); 
    System.out.println((totalSumOfGrades2/countOfGrades2)); 

    //Prompt user for exam score 
    System.out.print("Enter student's exam grade: "); 
    inputtedExamGrade=keyboard.nextFloat(); 

    //Double to hold average values then convert to int 
    double avgHomework = (totalSumOfGrades/countOfGrades)*.2; 
    double avgTest = (totalSumOfGrades2/countOfGrades2)*.5; 
    double avgExam = (inputtedExamGrade)*.3; 
    float avgHW = (float) avgHomework; 
    float avgT = (float) avgTest; 
    float avgEx = (float) avgExam; 

    //Output student grade 
    System.out.println("The grade for this student is: " +(avgHW+avgT+avgEx)); 

    //Prompt user for continuity input 
    System.out.println("Would you like to input another student's grades? (y/n)"); 
     cont = keyboard.next(); 
     if (cont.equalsIgnoreCase("n")) { 
      break; 
     } 
    //Close keyboard 
    keyboard.close(); 

    }//Ending bracket of very first while loop 

}//Ending bracket of method main 

}//Ending bracket of class StudentGrades 
+0

ユーザーがあなたのプログラムで何回も「入力」を押します。どちらがプログラムを終了しますか? – 4castle

+0

@ 4castleこれも私が不思議に思っていたものです。私のソリューションでは、代わりにコードの最後にユーザーを促しました。 – Arman

+0

私は非常に最初のプログラミングクラスに入っており、各ユーザーの入力後にEnterキーを押すように教えられてきました。 – SMcGwier

答えて

3

while(true){ 

    //put code in here 

    System.out.println("Continue?(y/n)"); 
    String cont = keyboard.nextLine(); 
    if(cont.equalsIgnoreCase("n")){ 
    break; 
    } 
} 
+1

これは本質的にはアルゴリズムがどのように見えるかですが、 'while(真)'を実行してから 'if'文に' break; 'を入れてもかまいません。 – 4castle

+0

@ 4castle私の答えを編集しました。 – Arman

+0

これは私のコードでこれを使用しましたが、「No Element Exception」というエラーメッセージが表示されました。このコードを使用する前に私のプログラムが完全に実行されていたので、このエラーがどこから来ているのか分かりません。 – SMcGwier

関連する問題