Java實現(xiàn)猜數(shù)程序
用Java編寫一個猜數(shù)程序,供大家參考,具體內(nèi)容如下
要求如下:
編寫一個猜數(shù)程序。命令行顯示菜單:1.開始;2.退出。用戶選擇1,則程序生成一個0~99之間的隨機整數(shù),命令行顯示“請輸入你猜的數(shù):”讓用戶猜。用戶輸入猜測的數(shù)據(jù),猜對了命令行顯示“你猜對了”,并且出現(xiàn)菜單:1.再來一次;2.退出。沒有猜對程序給出提示(如:太大了,太小了),并要求在命令行繼續(xù)輸入猜測的值;三次沒猜對則程序公布正確的數(shù)字,并且出現(xiàn)菜單:1.再來一次;2.退出。猜數(shù)時任何一個環(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();
}
}
//計算得分
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時結(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("當前得分: "+point);
}
public static void main(String[] args) {
System.out.println("1.開始 2.退出");
System.out.println("初始分數(shù):"+point);
GuessNumber begin = new GuessNumber();
begin.judge01();
int num;
num = new Random().nextInt(99); //創(chuàng)建0-99的隨機數(shù)
System.out.println("生成的隨機數(shù)(測試):"+num); //展示所創(chuàng)建的隨機數(shù),用于測試
begin.guess(num);
do {
System.out.println("1.再來一次 2.退出");
begin.judge01();
num = new Random().nextInt(99);
System.out.println("生成的隨機數(shù)(測試):"+num); //展示所創(chuàng)建的隨機數(shù),用于測試
begin.guess(num);
}while (choice != 2);
}
}
測試結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
@CacheEvict + redis實現(xiàn)批量刪除緩存
這篇文章主要介紹了@CacheEvict + redis實現(xiàn)批量刪除緩存方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Mybatis之解決collection一對多問題(顯示的結(jié)果沒有整合到一起)
這篇文章主要介紹了Mybatis之解決collection一對多問題(顯示的結(jié)果沒有整合到一起),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
基于Spring Cloud Zookeeper實現(xiàn)服務注冊與發(fā)現(xiàn)
這篇文章主要介紹了基于Spring Cloud Zookeeper實現(xiàn)服務注冊與發(fā)現(xiàn),幫助大家更好的理解和學習spring框架,感興趣的朋友可以了解下2020-11-11
使用logstash同步mysql數(shù)據(jù)到elasticsearch實現(xiàn)
這篇文章主要為大家介紹了使用logstash同步mysql數(shù)據(jù)到elasticsearch實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
基于SpringBoot中activeMq的JmsTemplate的實例
這篇文章主要介紹了基于SpringBoot中activeMq的JmsTemplate的實例問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Java split函數(shù)拆分后變成null問題解決方案
這篇文章主要介紹了Java split函數(shù)拆分后變成null問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10

