Java实现随机四则运算问题

使用系统:Windows10;

使用JDK:Java SE Development Kit 17.0.2;

使用开发环境:eclipse。

一、代码

package pers.xaizhi.randomoperation.wu;

import java.util.Scanner;

public class RandomOperation {
	static Scanner input = new Scanner(System.in);
	//扫描从控制台输入的字符,并赋值给input
	public static void main(String[] args) {
	
		int operator = (int) (Math.random() * 4); //随机产生0-3的数并赋值给operator
		int a = (int) (Math.random() * 20) + 1; //随机产生1-20的数并赋值给a
		int b = (int) (Math.random() * 20) + 1; //随机产生1-20的数并赋值给b
		
		System.out.println(a + getOp(operator) + b + "=?");
		//输出随机产生的数学四则运算式,随机四则运算符由自定义方法getOp获取
		System.out.println("输入答案:");//提示输入答案
		
		int enterAnswer = input.nextInt();//接收输入的答案
		int answer = calculation(a, b, operator);//调用自定义方法,在方法内计算出答案赋值给answer
		
		if(enterAnswer == answer) {
			System.out.println("恭喜!计算成功");//答案正确输出
		} else {
			System.out.println("计算错误");//答案错误输出
		}
	}
	
	//利用自定义方法,用随机产生的数进行运算符获取
	private static String getOp(int operator) {
		String string = "";
		switch (operator) {
		case 0:
			string = "+";
			break;
		case 1:
			string = "-";
			break;
		case 2:
			string = "*";
			break;
		case 3:
			string = "/";
			break;
		}
		return string;
	}

	//自定义方法,计算正确的算式答案
	private static int calculation(int a, int b, int operator) {
		int sum = 0;
		switch (operator) {
		case 0:
			sum = a + b;
			break;
		case 1:
			sum = a - b;
			break;
		case 2:
			sum = a * b;
			break;
		case 3:
			sum = a / b;
			break;
		}
		return sum;
	}
}

二、运行结果

 三、粗浅理解

        在写这个代码之前就要清楚,需要随机产生两个数和随机产生一个运算符,两个数随机出来简单,但是运算符不能随机出来。

        我们可以先随机出0,1,2,3这四个数,自定义一个getOp方法,利用switch循环获取随机数来判断获取的运算符,此时两个随机数及一个随机运算符已写好。

        接着输出随机到的运算式子,继续提示输入答案,利用static Scanner input = new Scanner(System.in);来扫描获取键盘输入的答案,再把答案赋值给enterAnswer变量。

        然后在利用自定义方法calculation,把随机到的两个随机数及随机运算符,在方法内计算出答案,这里也是利用switch循环,正好可以和getOp方法里switch循环的随机运算符对应,这样就能计算出正确的答案并赋值给answer变量。

        最后利用if判断语句判断输入的答案和计算的答案是否相等。相等计算正确,否则计算错误。

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏志121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值