今天的課,我們要講枚舉。 現在枚舉基本上是一個完整的有序列表 集合或集合中的所有項目。 例如, 星期一星期二星期三, 週四、週五、週六、週日、 將是一周中幾天的完整列表。 紅、橙、黃、綠、藍、靛、紫 可能是也可能不是一個完整的集合 取決於你在說什麼。 如果它們是光譜中的顏色, ROYGBIV 顏色,是的。 如果它代表所有顏色,那麼,不,它不是。 讓我們看一下枚舉是如何在程序中使用的。 我已將第 11 行拉出以說明您將如何聲明 一個稱為行星的枚舉。 如果你看屏幕的頂部 你可以看到我有公共枚舉行星 然後是九顆行星。 是的,我仍然將冥王星作為行星包括在內。 我們太陽系中的九顆行星。 第 11 行之後是我們的主程序 我們只有一個 for 循環 打印出所有行星 通過單獨訪問每一個。 所以在第 15 行,我有四個行星 P, 我正在關聯地球的枚舉, 特別是該列表的值, 我正在打印一個P。 這是一種不同的for循環, 因為我使用 P 作為控件 我想訪問哪個星球。 當我運行程序時, 正如你在最底部看到的那樣, 我把所有的行星都整理好了 因為P為每個行星旋轉 在枚舉中。 最後三行告訴你 你可以獲取地球的價值, 意思是地球這個詞, 或任何行星的序數。 冥王星,火星。 你可以選擇一個。 以防萬一你想知道 我們在太陽系中的位置, 地球在這裡。 在內行星中,我們是最大的。 但是當你觀察外行星時, 地球在這裡,我們是最小的。 讓我們再舉一個枚舉的例子。 假設我想玩石頭剪刀布遊戲。 我需要做的就是枚舉 我會打電話給手勢, 因為石頭剪刀布是手游戲。 所以我有三種可能性,剪刀、紙和石頭, 我把它們放進去的順序並不重要。 當我寫一個程序 我有第 12 行,這裡顯示的是我的枚舉。 該程序有一個清除屏幕的例程 通過創建轉義序列, 我可以使用 system.out.print 並使用這種字符組合。 \033 是轉義字符。 當 \033 與左括號組合時, 033H 允許我們移動 到屏幕的左上角, 2J 讓我們可以清屏。 所以把這些角色放在一起 我可以清除屏幕上的任何東西, 然後是系統輸出的刷新 擺脫任何垃圾 仍然在系統輸出打印中。 然後我聲明了一些我們之前做過的隨機數。 我有一些整數來計算玩了多少游戲, 電腦贏了多少次, 玩家贏了多少次, 以及有多少關係。 然後我進入遊戲的邏輯。 你知道嗎? 讓我們轉到遊戲的實際運行 看看這是如何工作的。 我們要得到的是看起來像這樣的東西。 但讓我們看看它發生在現場。 我正在使用在線 GDB 編譯器, 我要運行這個程序給你看 我如何去玩遊戲。 同樣,整個代碼在這裡。 很多都不需要專門做 通過設置枚舉, 但它確實與我們如何訪問這些項目有關 在那個枚舉中。 希望每個人都知道剪刀石頭布的規則。 我從發出命令的 while 循環開始 告訴用戶該做什麼。 輸入 S 表示剪刀,P 表示紙, R 代表搖滾或 Q 完成遊戲後退出遊戲。 我將輸入轉換為小寫 然後通過 switch 語句進行評估 他們按了哪封信。 如果他們有一封無效的信, 我給他們一條消息並再次繼續循環。 往下走, 我有一些代碼會生成一個隨機數 這將是計算機的動作, 一行打印出計算機及其移動, 玩家及其移動。 然後是時候弄清楚誰贏得了比賽。 如果兩個動作相等,則為平局。 如果電腦搬家是剪刀手 玩家移動是紙, 我們知道剪刀剪紙 所以電腦贏了。 我經歷了所有的可能性 讓計算機獲勝, 然後是讓玩家獲勝的可能性。 最後,在屏幕底部, 我計算百分比 電腦贏了多少次, 玩家贏了多少次, 打了多少次領帶, 並將該信息打印出來。 但是這裡的枚舉部分 和這個手勢剪刀有關, 手標誌岩石 和手籤紙。 這讓我可以回去 並檢查這些項目的值是什麼。 讓我們玩遊戲吧。 當我們運行遊戲時,它會告訴我指令, 這是石頭剪刀布遊戲。 我會選擇 R 代表搖滾。 它告訴我那是一條領帶 因為電腦也選了一塊石頭。 現在再次選擇一塊岩石。 這次電腦選擇了剪刀,我贏了。 另一塊岩石。 電腦選擇了剪刀。 我又贏了。 另一塊岩石。 哦,電腦選了紙。 他抓住了我的遊戲。 現在電腦贏了。 所以我會選擇紙張。 這次電腦選擇了剪刀, 剪刀剪斷了紙。 現在記住有一個隨機生成器, 隨機生成器會弄清楚發生了什麼。 我會再次選擇剪刀,然後我會退出程序。 它產生了,我打了六場比賽。 計算機贏了兩次。 我贏了兩次。 有兩條聯繫。 學習枚舉的好方法 就是看一看我們熟悉的東西。 在這種情況下,我們太陽系中行星的順序。 看看第 12 行。 這是按順序排列的標準行星列表 當他們遠離太陽時。 水星、金星、地球、火星、木星、土星。 我們把那些行星的名字 在稱為行星的枚舉內部。 從那裡我可以打印出列表。 讓我們運行程序。 當我運行程序時,我得到了整個行星列表。 在底部,我得到地球的價值是地球。 冥王星的指數是八, 火星的指數是三。 這裡發生了什麼 這個for循環是否會打印出值, 或者在這種情況下是名稱, 枚舉中的每個行星。 然後我打印出一個特定星球的價值, 直呼其名。 我可以打印出序數,也就是索引。 因為你會記得它從零開始。 現在我們都知道地球是離太陽第三顆行星。 這有點令人困惑 看到火星被列為第三個行星。 我們都知道地球是離太陽第三塊岩石, 所以我需要做的不是打印出序數, 但在枚舉中打印出行星的位置。 我這樣做,但有兩條線。 第一行將創建一個名為 planet 的整數, 我將它設置為地球的價值的星球。 我會在序數上加一。 所以地球,它的指數為二。 水星為零。 金星是一,地球是二。 如果我們在序數或索引上加一, 我們將把地球作為第三顆行星。 然後我可以打印出地球是第三個行星。 讓我們運行程序, 我們會看到地球確實會升起 作為第三顆行星。 現在你知道了,通過創建一個簡單的枚舉 您可以提取任何完整的值, 並在您的程序中使用這些值。