溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java猜字母游戲——實(shí)現(xiàn)字母生成方法

發(fā)布時(shí)間:2020-08-01 19:41:59 來(lái)源:網(wǎng)絡(luò) 閱讀:365 作者:nineteens 欄目:編程語(yǔ)言

  問(wèn)題

  實(shí)現(xiàn)猜字母游戲中的字母生成方法,即,隨機(jī)生成5個(gè)不同的字母作為猜測(cè)的結(jié)果。

  方案

  實(shí)現(xiàn)generate方法,首先聲明一個(gè)字符類(lèi)型的數(shù)組,用于存儲(chǔ)26個(gè)大寫(xiě)字母,然后聲明一個(gè)boolean類(lèi)型的數(shù)組,其長(zhǎng)度也為26。此數(shù)組中的初始值均為false,意味著,程序起始,沒(méi)有任何字母被選中。如果某個(gè)字母被選中,則同時(shí)設(shè)置該字母在boolean類(lèi)型數(shù)組中對(duì)應(yīng)位置上的值為true,表示該字母被選中過(guò)。

  然后,使用嵌套循環(huán):外層循環(huán)用于控制所生成的字母?jìng)€(gè)數(shù),即,循環(huán)5次,以產(chǎn)生5個(gè)字母;而內(nèi)層循環(huán)則用于判斷所生成的字母是否重復(fù)。generate方法的程序流程如圖所示:

  

Java猜字母游戲——實(shí)現(xiàn)字母生成方法


  步驟

  實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。

  步驟一:構(gòu)建存儲(chǔ)所有字母的數(shù)組

  在generate方法中,首先定義char類(lèi)型的數(shù)組變量letters,用于存放26個(gè)大寫(xiě)字母,然后定義boolean類(lèi)型的數(shù)組變量flag,flag數(shù)組的大小和letters數(shù)組的大小相同,用于記載某字母是否被選中,以便于判斷字母是否重復(fù)。代碼如下所示:

  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;

  }無(wú)錫專(zhuān)業(yè)婦科醫(yī)院 http://www.xasgyy.net/

  步驟二:隨機(jī)選擇5個(gè)不同的字母

  使用嵌套循環(huán),隨機(jī)選擇5個(gè)不同的字母,并且這五個(gè)字母不相同。代碼如下所示:

  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]);//判斷生成的字符是否重復(fù)

  chs[i]=letters[index];

  flags[index]=true;

  }

  return chs;

  }

  總結(jié):

  很多初學(xué)者寫(xiě)程序沒(méi)有思路,即使有思路也不知道從哪里下手,腦子里一團(tuán)糟。無(wú)論多么復(fù)雜的程序,都是由一個(gè)個(gè)小功能組成。這里的小功能指的就是“方法”,將每一個(gè)小功能都封裝成方法,完善每一個(gè)方法,一個(gè)程序就完成了。

  generate()方法的關(guān)鍵就在于如何實(shí)現(xiàn)不重復(fù),這里用到了flag標(biāo)記實(shí)現(xiàn)了不重復(fù)。在其他需要實(shí)現(xiàn)不重復(fù)的...程序中,也可以用到此思想。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI