Java实验--猜数字游戏

实验3.2 猜数字游戏

一、相关知识点

循环是控制结构语句中的最重要的语句之一,循环语句是根据条件反复执行同一代码块。循环语句有下列三种:

  1. while语句的一般格式:

while  (表达式) {

    若干语句

}

while语句的执行规则如下:

  • 计算表达式的值,如果该值是true时,就进行(2),否则进行(3)。
  • 执行循环体,再进行(1)。
  • 结束while语句的执行。

 2. for循环

for语句的一般格式:

for  (表达式1; 表达式2; 表达式3) {

    若干语句

}

for语句的执行规则如下:

  • 计算“表达式1”的值,完成必要的初始化工作。
  • 判断“表达式2”的值,若“表达式2”的值为true,则进行(3),否则进行(4)。
  • 执行循环体,然后计算“表达式3”,以便改变循环条件,进行(2)。
  • 结束for语句的执行。

3. 将字符串转化为数值

执行“int m = Integer.parseInt(“6789”);”可以将数字型字符串,如“6789”“123”转化为int型数据。

4. Scanner类创建一个对象

Scanner reader = new Scanner(System.in);

reader对象调用nextInt()方法读取用户输入的整数。

二、实验目的

本实验的目的是让学生使用if-else分支和while循环语句解决问题。

三、实验要求

编写一个简单的Java应用程序,实现下列功能:

程序随机分配给客户一个1-100之间的整数。

用户输入自己的猜测。

程序返回提示信息,提示信息分别是“猜大了”“猜小了”或“猜对了”。

用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。

四、程序效果示例

程序运行效果如图3.2所示。

 图3.2 猜数字

五、程序模板

请按模板要求,将【代码】替换为Java程序代码。

【GuessNumber.java】

import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);
        Random random = new Random();
        System.out.println("给你一个1至100之间的整数,请猜测这个数");
        int realNumber = random.nextInt(100) + 1;  //random.nextInt(100)是[0,100)
        //中的随机整数
        int yourGuess = 0;
        System.out.print("输入您的猜测:");
        yourGuess = reader.nextInt();
        while (yourGuess != realNumber)    //循环条件
        {
            if (yourGuess > realNumber)
            {
                System.out.print("猜大了,再输入你的猜测:");
                yourGuess = reader.nextInt();
            }
         else if (yourGuess < realNumber)
            {
                System.out.print("猜小了,再输入你的猜测:");
                yourGuess = reader.nextInt();
            }

        }
        System.out.println("猜对了");

    }
}

结果:

六、实验后的练习

(1)用“yourGuess > realNumber”替换【代码1】可以码?

不可以,这样子会使得else if语句的内容失效。不符合实际逻辑

(2)语句“System.out.println("猜对了");”为何要放在while循环语句之后?放在while语句的循环体中合理吗?

放在外面,是因为while的循环条件是yourGuess != realNumber。如果要放在while循环里里面则要改变循环条件,同时要放进判断语句里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值