Java 2实用教程(第5版)实验指导与习题解答 第3章-上机实践-分支与循环语句

  • 实验 1 回文数
  • 实验目的
  • 实验要求
  • 程序效果示例
  • 实验代码
  • 运行截图
  • 实验 2 猜数字游戏
  • 实验目的
  • 实验要求
  • 程序效果示例
  • 实验代码
  • 运行截图


实验 1 回文数

实验目的

本实验的目的是让学生掌握使用 if-else if-else 多分支语句。

实验要求

编写一个 Java 应用程序。用户从键盘输入一个 1~9999 之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如 12121、 3223 都是回文数。

程序效果示例

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

Java上机实验遇到的问题 java上机实验答案_java

实验代码

import java.util.Scanner;

public class 回文数01 {

    public static void main(String[] args) {

        System.out.println("输入一个 1~9999 之间的整数");

        //数据输入
        Scanner sc = new Scanner(System.in);
       int temp = sc.nextInt();;

       //对数据进行判断是否合法
        while(temp < 1 || temp > 9999){
            System.out.println("数据输入有误,请重新输入!");
            temp = sc.nextInt();
        }

        //判断这个数是几位
        int a = 0;
        if(temp <= 9){
            System.out.println(temp + "是一位数");
            a = 1;
        }else if(temp <= 99){
            System.out.println(temp + "是二位数");
            a = 2;
        }else if(temp <= 999){
            System.out.println(temp + "是三位数");
            a = 3;
        }else{
            System.out.println(temp + "是四位数");
            a = 4;
        }

        //判断这个数是否为回文数

        int sum = 0;
        int ge = 0;
        int shi = 0;
        int bai = 0;
        int qian = 0;

        //分解数
        for(int i = 0;i < a;i++){
            if(i == 0){
                ge = temp % 10;
            }
            if(i == 1){
                shi = temp / 10 % 10;
            }
            if(i == 2){
                bai = temp /100 % 10;
            }
            if(i == 3){
                qian = temp /1000 % 10;
            }
        }
        //计算回文数
        if(a == 1){
            sum = ge;
        }
        if(a == 2){
            sum = ge * 10 + shi;
        }
        if(a == 3){
            sum = ge * 100 + shi * 10 + bai;
        }
        if(a == 4){
            sum = ge * 1000 + shi * 100 + bai * 10 + qian;
        }

        //判断并输出
        if (sum == temp){
            System.out.println(temp + "是回文数");
        }else{
            System.out.println(temp + "不是回文");
        }


    }
}

运行截图

Java上机实验遇到的问题 java上机实验答案_java-ee_02


Java上机实验遇到的问题 java上机实验答案_java_03

实验 2 猜数字游戏

实验目的

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

实验要求

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

1、程序随机分配给客户一个 1~100 之间的整数。
2、用户输入自己的猜测。
3、程序返回提示信息,提示信息分别是“猜大了”“猜小了”或“猜对了”。
4、用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。

程序效果示例

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

Java上机实验遇到的问题 java上机实验答案_java_04

实验代码

import java.util.Random;
import java.util.Scanner;

public class 猜数字游戏02 {
    public static void main(String[] args) {
        //产生一个1~100之间的随机整数
        Random r = new Random();
        int num = r.nextInt(100) + 1;

        System.out.println("给您一个1至100之间的整数,请猜测这个数");
        System.out.print("请输入你的猜测:");

        Scanner sc = new Scanner(System.in);
        int temp = -1;
        while(temp != num){
            temp = sc.nextInt();
            if(temp > num){
                System.out.print("猜大了,再输入你的猜测:");
            }else if(temp < num){
                System.out.print("猜小了,再输入你的猜测:");
            }
        }
        System.out.println("恭喜你猜对了!");

    }
}

运行截图

Java上机实验遇到的问题 java上机实验答案_intellij-idea_05