1. 程式人生 > >第3章 隨機點名器案例

第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,…},…};