前言
博主很久以前就拿过Java写过一个猜数字程序,但是写的一塌糊涂、可读性极差而且还是CV{CTRL+C,CTRL+V)写出来的,在学过一段时间C语言后也写过一个猜数字游戏,就在Java课上无聊突发奇想,于是就将之前的代码重新写一遍。
正文
1. 创建一个Java程序入口:
这个在上一篇文章有讲述,就直接略过。
2. 初始化变量:
设置变量名并初始化:
double a = 0;//double类型a将用于保存生成的随机数
int b = 0,x = -1;//b将会保存处理过的a数值,x将用于保存输入的值并比对a
3. 构建Scanner对象,读取输入字符:
这个在上一篇文章也有讲述,也就直接略过了。
4. 设置一个提示输入代码:
System.out.println("输入一个在1~100的整数,我会告诉你对不对( ̄▽ ̄)/:");
5. 生成随机数:
这边使用的Math库函数中的Math.random(),然后将生成的随机数传给变量a,但是现在的a还是一个0~1的小数的Double变量,接下来需要将a*100后转换成整数值,这里博主直接使用了(int)(a)进行了强制转换后赋值给了b
a = Math.random();
b = 1+(int)(a*100);//这里加一的原因是random可能生成0.001这种极端情况
6. 循环检测:
写一个while循环函数检测a和x是否相等,如果不相等就运行函数内的代码.
然后在函数内使用if检测a和x的大小.
while(a!=x){
x = sc.nextInt();
if(x>b){
System.out.println("这个值似乎大于目标值 (o°ω°o)");
}
else if(x<b){
System.out.println("这个值似乎小于目标值(o°ω°o)");
}
else if(x==b){
System.out.println("你猜中了(〃'▽'〃)");
}
假如变量b = x,将执行if语句中的
else if(x==b){
System.out.println("你猜中了(〃'▽'〃)");
}
然后在下一次循环的时候触发while的条件(b != x)跳出循环,然后结束程序
完整代码
package GSn;
import java.util.Scanner;
public class Gsn
{
public static void main(String[] args){
double a = 0;
int b = 0,x = -1;
a = Math.random();
b = 1+(int)(a*100);
while(a!=x){
x = sc.nextInt();
if(x>b){
System.out.println("这个值似乎大于目标值 (o°ω°o)");
}
else if(x<b){
System.out.println("这个值似乎小于目标值(o°ω°o)");
}
else if(x==b){
System.out.println("你猜中了(〃'▽'〃)");
}
woa