Java程式設計基礎 數組-3

來源:互聯網
上載者:User

標籤:數字   限制   程式設計基礎   exe   通過   建立   i++   new   設計   

  繼續我們數組的分享。

  我們一旦定義了數組,數組中就有了很多這種類型的變數,數組中的每一個元素都是那種類型的變數,而我們訪問他們的時候是通過索引或者說是通過下標來訪問的,索引或者下標一定是整數,從 0 開始的。

  如果說我們定義 i ,int i ; 我們得到有那麼一個叫做 i 的地方,裡面我們可以放一些數,如果說 i = 5;那麼我們就把 5 放進去了 。

  現在比如說有一個數組  int[] a = new int[10];  這個時候我們就不是那麼一個地方了,我們有十個這樣的地方,每一個地方裡面都是一個 int ,每一個地方都有一個編號,這個編號從 0 開始,0號、1號、... 一直到9號,如果我們說 a[0] = 5;  那麼就是我們在 0 號地方放了一個5。

  數組就是這樣一種東西,它裡面就是很多一種類型的變數,每一個變數都是通過數字編號來訪問它的,編號是從 0 開始的,一直到 數組個數-1 為止,最大的下標是 數字個數-1。對於數組來說有效下標是從0 開始的,最小的是 0 ,最大的是  數組個數-1。可是我們的編譯器是不檢查有效下標的。比如:

  我們之前定義了 numbers 數組,現在我們寫 numbers[-1] = 10;  編譯器沒有報錯;

  再寫一個 numbers[100] = 10;  我們知道 100 都已經超出了,最大隻有99,還是沒有報錯,編譯器不來檢查這件事情。可是如果我們運行這個程式,馬上他會拋出異常:

  這個異常叫做數組的索引溢出了邊界,在第11行。

  前面的這個程式我們說可能涉及到很多數字會越界,是危險的,因為我們建立了 100  個這樣的類型的 數組,cnt一直+1,如果沒有一定的限制cnt會超過一百的,所以說只要cnt超過一百,我們這個程式就會拋出異常了,我們事先不知道使用者會輸入的多少個數字,只是用-1來標誌輸入結束,直接定義100個 這樣做是危險的,怎麼做才是安全的呢。

  在之前我們提到過在建立數組的時候我們不是一定要給一個常數的,數組大小完全可以是個變數,也就是說我們可以換一個思路,我們不是讓使用者輸入-1標誌著結束,而是讓使用者輸入一個數,讓使用者告訴我們說這一次他要輸入多少個數,然後我們根據這個數來決定這個數組該開多大,然後在把資料讀進來。以下是我們完成這個功能的代碼:

package exercise;import java.util.Scanner;public class Average {    public static void main(String[] args) {        // TODO 自動產生的方法存根        Scanner in = new Scanner(System.in);        System.out.print("請輸入想要輸入資料的個數:");        double sum = 0;        int cnt = in.nextInt();        if(cnt > 0)        {            int[] numbers = new int[cnt];             for(int i = 0;i < cnt;i++)            {                numbers[i] = in.nextInt();                sum += numbers[i];            }            double average = sum/cnt;            for(int i = 0 ;i < cnt ;i++)            {                if (numbers[i] >= average)                {                    System.out.println(numbers[i]);                }            }            System.out.println("the average is :" + average);        }    }}

程式運行結果為:

請輸入想要輸入資料的個數:10
1 2 3 4 5 6 7 8 9 10
6
7
8
9
10
the average is :5.5

Java程式設計基礎 數組-3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.