用while回圈實作下面的題目:輸入n個(不定)同學的成績,以“0”表示輸入結束。如果輸入的是負數,提示輸入成績有誤。記錄所獲得的所有學生成績的總和sum,以及相應的人數n,計算平均成績avg。如果avg<60,則輸出“平均成績不合格”;否則,輸出“平均成績合格”。
uj5u.com熱心網友回復:
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class T {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
System.out.println("please enter the num:");
int sum = 0;
Scanner scan = new Scanner(System.in);
while (true) {
String str = scan.next();
try {
int num = Integer.valueOf(str);
if (num == 0) {
break;
}
if (num < 0) {
System.out.println("成績輸入有誤");
break;
}
list.add(num);
sum += num;
} catch(Exception e) {
e.printStackTrace();
}
}
for (int num : list) {
System.out.print(num + " ");
}
System.out.println();
BigDecimal avg = new BigDecimal(sum).divide(new BigDecimal(list.size())).setScale(2);
if (avg.compareTo(new BigDecimal(60))< 0) {
System.out.println("成績不合格");
} else {
System.out.println("成績合格");
}
}
}
uj5u.com熱心網友回復:
22 行 小于0 干嘛要 break,改成continue應該繼續下一輪回圈呀
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113243.html
標籤:Java SE
