第3章 隨機點名器案例
3.1 案例介紹
隨機點名器,即在全班同學中隨機的打印出一名同學名字。
要做的隨機點名器,它具備以下3個內容:
儲存所有同學姓名
總覽全班同學姓名
隨機點名其中一人,列印到控制檯
在編寫案例前,我們先來學習下本案例中所涉及到的知識點:
陣列
3.2 案例需求分析
在全班同學中隨機的打印出一名同學名字。
我們對本案例進行分析,得出如下分析結果:
1.儲存全班同學名字
2.列印全班同學每一個人的名字
3.在班級總人數範圍內,隨機產生一個隨機數,查詢該隨機數所對應的同學名字
在儲存同學姓名時,如果對每一個同學都定義一個變數進行姓名儲存,則會出現過多孤立的變數,很難一次性將全部資料持有。此時,我們可以使用陣列解決多個數據的儲存問題。
/* 隨機點名器,即在全班同學中隨機的打印出一名同學名字。 要做的隨機點名器,它具備以下3個內容: 儲存所有同學姓名 總覽全班同學姓名 隨機點名其中一人,列印到控制檯 在編寫案例前,我們先來學習下本案例中所涉及到的知識點: 陣列 */ //需要鍵盤輸入所有同學姓名 import java.util.Scanner; //產生隨機數Random import java.util.Random; public class CallName_1{ public static void main(String[] args){ //鍵盤輸入所有同學姓名,設定容器 String[] names = new String[3]; //Scanner建立物件例項 Scanner sc = new Scanner(System.in); //儲存所有同學姓名 //迴圈遍歷接受控制檯錄入的字串 for(int i = 0;i < names.length;i++){ System.out.println("接受第" + i + "同學姓名"); names[i] = sc.next();//接受錄入的字串 } //建立Random例項 Random ran = new Random(); System.out.println("隨機點名開始"); int i = 0; while(true){ //使用方法生成隨機數索引來點名 int index = ran.nextInt(names.length);//剛好這樣索引能隨機取到陣列中任何個姓名 System.out.println(names[index]); i++; if(i == names.length){ System.out.println("隨機點名結束"); break; } } } }
第4章 總結
4.1 知識點總結
陣列
它是一個用來儲存同一個資料型別多個元素的一個容器(陣列長度是固定的,陣列中儲存的元素的資料型別要求一致)
格式:
格式1:
資料型別[] 陣列名 = new 資料型別[陣列長度];
格式2:
資料型別[] 陣列名 = new 資料型別[]{元素值1,元素值2,..};
格式3:
資料型別[] 陣列名 = {元素值1,元素值2,..};
陣列操作的常見問題:
NullPointerException: 空指標異常
ArrayIndexOutOfBoundsException: 陣列越界異常
二維陣列:
它是一個包含多個一維陣列的陣列
特點:二維陣列中的每個元素都是一個一維陣列
格式:
格式1:
資料型別[][] 陣列名 = new 資料型別[m][n];
m: 代表二維陣列中一維陣列的個數
n: 代表每個一維陣列中元素的個數
格式2:
資料型別[][] 陣列名 = new 資料型別[m][];
m: 代表二維陣列中一維陣列的個數
每一個一維陣列通過賦值來確定陣列長度
格式3:
資料型別[][] 陣列名 = {{元素值1,元素值2,…},{元素值1,元素值2,…},…};