課本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) ;
    }
}

image

一開始cnt初始值要設成-1,看起來是因為第一次跑迴圈會將cnt加一,所以int cnt = -1;

但課本是說使用者最後一次要結束程式時,會輸入-1,這一次的輸入會導致人數比實際人數多一,所以int cnt = -1;  但是,使用者輸入-1,根本不會進迴圈啊,也就不會有cnt++的狀況了。

不知道我的理解有沒有錯...

 

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Lillian 的頭像
    Lillian

    安安的code日記

    Lillian 發表在 痞客邦 留言(0) 人氣()