[英]Nested Control Structures Grade average calculator
如何使大於100或小於0的數字不加到平均值中? 該腳本可以編譯並正常運行,但是當我輸入101時,它告訴我該數字太大,但仍取其平均值。 謝謝!
import java.util.Scanner;
public class ExerciseSix
{
public static void main( String[] args )
{
Scanner dylan = new Scanner(System.in);
int gradeCounter;
int total;
int grade;
double average;
total = 0;
gradeCounter = 0;
System.out.println( "Enter a grade or -1 to quit: " );
grade = dylan.nextInt();
while ( grade != -1 )
{
total = total + grade;
gradeCounter = gradeCounter + 1;
if( grade > 100 || grade < 0) {
if ( grade > 100 ) {
System.out.println( "Number too large, enter a new number");
}
if ( grade < 0 ) {
System.out.println( "Number too small, enter a new number");
}
}
System.out.println( "Enter grade or -1 to quit: ");
grade = dylan.nextInt();
}
if ( gradeCounter != 0 )
{
average = (double) total / gradeCounter;
System.out.printf( "Class average is %.2f", average );
}
else
System.out.println( "No grades were entered" );
}
}
添加continue
跳轉到下一個循環迭代。 將計算移到這些檢查的下面,以便如果檢查失敗,則不執行計算。
if ( grade > 100 ) {
System.out.println( "Number too large, enter a new number");
continue;
}
if ( grade < 0 ) {
System.out.println( "Number too small, enter a new number");
continue;
}
total = total + grade;
gradeCounter = gradeCounter + 1;
在測試該值之前,需要進行平均。 將平均代碼放在else語句中。
if ( grade > 100 || grade < 0) {
if ( grade > 100 ) {
System.out.println( "Number too large, enter a new number");
}
if ( grade < 0 ) {
System.out.println( "Number too small, enter a new number");
}
} else {
total = total + grade;
gradeCounter = gradeCounter + 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.