写在前面

  这两天打算把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之间的整数了。

运行示例

mark