課本4-18頁的while例題-平均分數計算,總覺得說明有點奇怪,於是自己做了一張流程圖...嗯,說明真的很奇怪。
import java.util.Scanner; public class MainClass { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int score = 0; //分數 int sum = 0; //總分 int cnt= -1; //人數 while(score != -1){ cnt++; //第一次跑迴圈人數會加一,因此cnt初始值要設成-1 sum += score; System.out.print("輸入分數(-1結束):" ); score = scanner.nextInt(); } System.out.println("學生人數:" + cnt + "\t總分"+ sum + "\t平均分數" + (double)sum/cnt + "\t" + score) ; } }
一開始cnt初始值要設成-1,看起來是因為第一次跑迴圈會將cnt加一,所以int cnt = -1;
但課本是說使用者最後一次要結束程式時,會輸入-1,這一次的輸入會導致人數比實際人數多一,所以int cnt = -1; 但是,使用者輸入-1,根本不會進迴圈啊,也就不會有cnt++的狀況了。
不知道我的理解有沒有錯...
全站熱搜