任務
編寫一個随機點名的程式,使其能夠在全班同學中随機點中某一名同學的名字。随機點名器具備3個功能,包括存儲全班同學姓名、總覽全班同學姓名和随機點取其中一人姓名。比如随機點名器首先分别向班級存入小明、小紅和小蘭這3位同學的名字,然後總覽全班同學的姓名,列印出這3位同學的名字,最後在這3位同學中随機選擇一位,并列印出該同學的名字,至此随機點名成功。
任務實作
(1)在存儲同學姓名時,如果對每一個同學都定義一個變量進行姓名存儲,則會出現過多孤立的變量,可以使用數組解決多個資料的存儲問題。建立一個可以存儲多個同學姓名的數組。
(2)鍵盤輸入同學姓名,将輸入的姓名依次指派給數組的元素。
Scanner sc = new Scanner(System.in);
String str=sc.nextInt();
(3)對數組進行周遊,即可實作總覽全班同學的姓名。
(4)根據數組長度,擷取随機索引。
public int nextInt(int n)
(5)“随機點名器”明确分為3個功能,如果将多個獨立功能的代碼寫在一起,則代碼冗長,可讀性差,可以針對不同的功能将其封裝到不同的方法中,将完整獨立的功能分離出來,在main()方法中調用3個方法即可。
代碼實作
import java.util.Random;
import java.util.Scanner;
public class name {
public static void main(String[] args){
System.out.println("----------随機點名器----------");
String[] s =new String[3];
add(s);
print(s);
rand(s);
}
public static void add(String[] a){
Scanner sc= new Scanner(System.in);
for(int i=0;i<a.length;i++){
System.out.println("存儲第"+(i+1)+"個同學的姓名:");
a[i]=sc.next();
}
}
public static void print(String[] a){
for(int i=0;i<a.length;i++){
System.out.println("第"+(i+1)+"個同學的姓名:"+a[i]);
}
}
public static void rand(String[] a){
Random r = new Random();
int i = r.nextInt(a.length);
System.out.println("被點名的是:"+ a[i]);
}
}