写在前面
这两天打算把Java再学习一下,但是前面的基础部分,因为太长时间不用,也都忘记的差不多了,所以现在在从最基础的部分开始复习一遍。
只是个人的一些理解,新手可以看看,Java老鸟或者真大佬还是别看了。。。
有什么理解错误的地方,欢迎指正
程序要求
写一个猜一个随机产生的数字的小程序。
程序分析
按照软件开发思想,写代码之前要做的就是软件需求分析。虽然只是个最基础的小例子,当时要从小做起嘛...
程序需求很简单,猜一个随机产生的数字。
- 猜测随机数字:首先要产生一个随机数字
- 猜测的时候:需要接收键盘的输入
- 判断猜测结果:有判断语句
- 猜错了?:要继续循环
代码
import java.util.Random;//导入Random包
import java.util.Scanner;//导入Scanner包
public class GuestNum {
public static void main(String[] args) {
//创建Random类变量
Random ran = new Random();
//使用nextInt功能产生1-10的随机数
int r = ran.nextInt(10)+1;
System.out.println("游戏开始了,请输入数字1-10");
//创建Scanner类变量
Scanner sc = new Scanner(System.in);
while(true) {
//获取键盘输入
int i = sc.nextInt();
//数据对比
if(i>r) {
System.out.println("猜大了,请重新输入数字1-10");
}else if(i<r) {
System.out.println("猜小了,请重新输入数字1-10");
}else {
System.out.println("猜对了");
break;
}
}
}
}
升级版190402
/**
* 猜数字游戏:一个类A有一个成员变量v,有一个随机初值在100以内。
* 定义一个类,对A类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。
* @author xg
* @time 2019年4月2日
*/
public class GuessNumber {
public static void main(String[] args) {
A a=new A();
int rand=a.getV();//获取A类中变量v的值
Scanner sc=new Scanner(System.in);
// System.out.println(rand);
System.out.println("现在就开始猜数字游戏吧!\n请猜一个1-100之间的随机整数,并输入:");
while(true) {
int guess=sc.nextInt();
if(guess==rand) {
System.out.println("=================================================");
System.out.println("恭喜你猜对啦!!!");
break;
}else if(guess>rand) {
System.out.println("=================================================");
System.out.println("抱歉,你猜大了");
if(IfContinue(IfGo())) {
continue;
}else {
break;
}
}else {
System.out.println("=================================================");
System.out.println("抱歉,你猜小了");
if(IfContinue(IfGo())) {
continue;
}else {
break;
}
}
}
}
/*
* 方法:用于获取是否继续的用户输入输入
*/
static int IfGo() {
System.out.println("你还要继续吗,请输入1/0");
Scanner scJudge = new Scanner(System.in);
int judge =scJudge.nextInt();
return judge;
}
/*
* 方法:判断用户是否继续
*/
static boolean IfContinue(int ju) {
if(ju==1) {
System.out.println("那就请再猜一个吧");
return true;
}else {
System.out.println("还没成功就放弃了,告辞");
return false;
}
}
}
class A {
private int v;//私有变量v
int getV() {
v=(int)(Math.random()*100+1);//取值范围在1-100之间的随机整数
return v;
}
}
代码分析
代码的注释已经写得很清楚了,有一个需要注意的地方就是int r = ran.nextInt(10)+1;
这个地方。
nextInt方法括号内的数字表示随机数的范围,比如括号内写的是10,则随机数范围是0-9之间的整数,它包括0,但是并不包括10。那么ran.nextInt(10)+1,后面加以之后,r的范围就是1-10之间的整数了。
退出登录?