您好,登錄后才能下訂單哦!
問題
實現猜字母游戲中的字母生成方法,即,隨機生成5個不同的字母作為猜測的結果。
方案
實現generate方法,首先聲明一個字符類型的數組,用于存儲26個大寫字母,然后聲明一個boolean類型的數組,其長度也為26。此數組中的初始值均為false,意味著,程序起始,沒有任何字母被選中。如果某個字母被選中,則同時設置該字母在boolean類型數組中對應位置上的值為true,表示該字母被選中過。
然后,使用嵌套循環:外層循環用于控制所生成的字母個數,即,循環5次,以產生5個字母;而內層循環則用于判斷所生成的字母是否重復。generate方法的程序流程如圖所示:
步驟
實現此案例需要按照如下步驟進行。
步驟一:構建存儲所有字母的數組
在generate方法中,首先定義char類型的數組變量letters,用于存放26個大寫字母,然后定義boolean類型的數組變量flag,flag數組的大小和letters數組的大小相同,用于記載某字母是否被選中,以便于判斷字母是否重復。代碼如下所示:
public static char[] generate(){
char[] chs=new char[5];
char[] letters={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S',
'T','U','V','W','X','Y','Z'};
boolean flags=new boolean[letters.length];
return chs;
}無錫專業婦科醫院 http://www.xasgyy.net/
步驟二:隨機選擇5個不同的字母
使用嵌套循環,隨機選擇5個不同的字母,并且這五個字母不相同。代碼如下所示:
public static char[] generate(){
char[] chs=new char[5];
char[] letters={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S',
'T','U','V','W','X','Y','Z'};
boolean[] flags=new boolean[letters.length];
for(int i=0;i
int index;
do{
index=(int)(Math.random()*(letters.length));
}while(flags[index]);//判斷生成的字符是否重復
chs[i]=letters[index];
flags[index]=true;
}
return chs;
}
總結:
很多初學者寫程序沒有思路,即使有思路也不知道從哪里下手,腦子里一團糟。無論多么復雜的程序,都是由一個個小功能組成。這里的小功能指的就是“方法”,將每一個小功能都封裝成方法,完善每一個方法,一個程序就完成了。
generate()方法的關鍵就在于如何實現不重復,這里用到了flag標記實現了不重復。在其他需要實現不重復的...程序中,也可以用到此思想。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。