Java實(shí)現(xiàn)猜數(shù)程序
用Java編寫一個(gè)猜數(shù)程序,供大家參考,具體內(nèi)容如下
要求如下:
編寫一個(gè)猜數(shù)程序。命令行顯示菜單:1.開始;2.退出。用戶選擇1,則程序生成一個(gè)0~99之間的隨機(jī)整數(shù),命令行顯示“請輸入你猜的數(shù):”讓用戶猜。用戶輸入猜測的數(shù)據(jù),猜對了命令行顯示“你猜對了”,并且出現(xiàn)菜單:1.再來一次;2.退出。沒有猜對程序給出提示(如:太大了,太小了),并要求在命令行繼續(xù)輸入猜測的值;三次沒猜對則程序公布正確的數(shù)字,并且出現(xiàn)菜單:1.再來一次;2.退出。猜數(shù)時(shí)任何一個(gè)環(huán)節(jié),命令行上總會顯示用戶的總得分情況。得分規(guī)則如下:一次猜中得3分,第二次猜中得2分,第三次得1分,三次沒有猜中扣2分。主類的名稱定為GuessNumber。
上代碼
import java.util.InputMismatchException; import java.util.Random; import java.util.Scanner; public class GuessNumber { public static int choice; public static int point = 0; //控制choice為0/1,防臉滾鍵盤 public void judge01() { try { Scanner sc = new Scanner(System.in); choice = sc.nextInt(); switch (choice) { case 1: break; case 2: System.exit(0); default: { System.out.println("請輸入0-1:"); judge01(); } } } catch (InputMismatchException e) //非整數(shù)(小數(shù)、字符)會被捕獲 { System.out.println("請輸入整數(shù)(0-1)!"); judge01(); } } //計(jì)算得分 public int point(int count) { if (count == 1) { point += 3; return point; } else if (count == 2) { point += 2; return point; } else if (count == 3) { point += 1; return point; } else { point -= 2; return point; } } //猜數(shù)部分 public int start(int num, int count) //返回值為count { //try...catch...語句防誤輸入 try { Scanner sc = new Scanner(System.in); int input_number; System.out.println("請輸入你猜的數(shù)(0-99):"); input_number = sc.nextInt(); if (input_number < 0 || input_number > 99) //控制輸入數(shù)字的范圍 { System.out.println("輸入的整數(shù)范圍:[0,99]"); return start(num, count); } else { if (input_number < num) { count++; if (count == 3) //count為3時(shí)結(jié)束猜數(shù)并公布正確數(shù)字 { System.out.println("三次都沒有猜中,游戲結(jié)束!"); System.out.println("正確數(shù)字:"+num); count++; return count; } System.out.println("太小了,請重新輸入:"); return start(num, count); } else if (input_number > num) { count++; if (count == 3) { System.out.println("三次都沒有猜中,游戲結(jié)束!"); System.out.println("正確數(shù)字:"+num); count++; return count; } System.out.println("太大了,請重新輸入:"); return start(num, count); } else { count++; System.out.println("恭喜你,猜對了!"); return count; } } } catch (InputMismatchException e) { System.out.println("請輸入整數(shù)!"); start(num, count); } return -1; } //完整的猜數(shù)流程 public void guess(int num) { int count = 0; count = start(num, count); point = point(count); System.out.println("當(dāng)前得分: "+point); } public static void main(String[] args) { System.out.println("1.開始 2.退出"); System.out.println("初始分?jǐn)?shù):"+point); GuessNumber begin = new GuessNumber(); begin.judge01(); int num; num = new Random().nextInt(99); //創(chuàng)建0-99的隨機(jī)數(shù) System.out.println("生成的隨機(jī)數(shù)(測試):"+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測試 begin.guess(num); do { System.out.println("1.再來一次 2.退出"); begin.judge01(); num = new Random().nextInt(99); System.out.println("生成的隨機(jī)數(shù)(測試):"+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測試 begin.guess(num); }while (choice != 2); } }
測試結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)生成pdf并解決表格分割的問題
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)生成pdf,并解決表格分割的問題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11Java+Selenium實(shí)現(xiàn)控制瀏覽器的啟動選項(xiàng)Options
這篇文章主要為大家詳細(xì)介紹了如何使用java代碼利用selenium控制瀏覽器的啟動選項(xiàng)Options的代碼操作,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-01-01ArrayList和JSONArray邊遍歷邊刪除到底該如何做
這篇文章主要介紹了ArrayList和JSONArray邊遍歷邊刪除到底該如何做,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12java判斷String類型是否能轉(zhuǎn)換為int的方法
今天小編就為大家分享一篇java判斷String類型是否能轉(zhuǎn)換為int的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Java詳解如何將excel數(shù)據(jù)轉(zhuǎn)為樹形
在平常的辦公工作中,excel數(shù)據(jù)的操作是最常見的需求,今天就來看一下通過Java如何來實(shí)現(xiàn)將excel數(shù)據(jù)轉(zhuǎn)為樹形,感興趣的朋友可以了解下2022-08-08JAVA中調(diào)用C語言函數(shù)的實(shí)現(xiàn)方式
這篇文章主要介紹了JAVA中調(diào)用C語言函數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解
這篇文章主要介紹了Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08