使用系统: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判断语句判断输入的答案和计算的答案是否相等。相等计算正确,否则计算错误。
|