首页 / JAVA / java – 随机生成方程和答案
java – 随机生成方程和答案
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 随机生成方程和答案,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2297字,纯文字阅读大概需要4分钟。
内容图文
![java – 随机生成方程和答案](/upload/InfoBanner/zyjiaocheng/726/f8c72a3f31e4463c849ee936d04fef10.jpg)
我试图随机生成一个方程式,它也有50%的机会出错,并显示错误的答案.错误的答案应该有-2,-1,1或2的错误.
有时我的代码会打印这样的分割方程式(我无法发布图像):
2/10 = 13
1/5 = 43
等等
我无法弄清楚为什么等式显示未经检查的数字混合?
(它首先在我的onCreateView方法中调用generateNumbers()
public void generateNumbers() {
//randomly generate 2 numbers and an operator
number1 = (int) (Math.random() * 10) + 1;
number2 = (int) (Math.random() * 10) + 1;
operator = (int) (Math.random() * 4) + 1;
//50% chance whether the displayed answer will be right or wrong
rightOrWrong = (int) (Math.random() * 2) + 1;
//calculate the offset of displayed answer for a wrong equation (Error)
error = (int) (Math.random() * 4) + 1;
generateEquation();
}
public void generateEquation() {
StringBuilder equation = new StringBuilder();
//append the first number
equation.append(number1);
//generate/append the operator and calculate the real answer
if (operator == 1) {
equation.append(" + ");
actualAnswer = number1 + number2;
} else if (operator == 2) {
equation.append(" - ");
actualAnswer = number1 - number2;
} else if (operator == 3) {
equation.append(" x ");
actualAnswer = number1 * number2;
} else if (operator == 4) {
if ((number1%number2==0) && (number1>number2)) {
actualAnswer = number1 / number2;
} else {
generateNumbers();
}
equation.append(" / ");
}
//append the second number and the equals sign
equation.append(number2 + " = ");
//we will display the correct answer for the equation
if (rightOrWrong == 1) {
displayedAnswer = actualAnswer;
equation.append(displayedAnswer);
}
//we will display an incorrect answer for the equation
//need to calculate error (-2, -1, +1, +2)
else {
if (error == 1) {
displayedAnswer = actualAnswer - 1;
} else if (error == 2) {
displayedAnswer = actualAnswer - 2;
}else if (error == 3) {
displayedAnswer = actualAnswer + 1;
}else {
displayedAnswer = actualAnswer + 2;
}
//append the displayed answer with error
equation.append(displayedAnswer);
}
questionNumber.setText("You have answered " + count + " out of 20 questions");
finalEquation.setText(equation.toString());
}
解决方法:
我认为你需要在调用generateNumbers后输入一个return语句
} else if (operator == 4) {
if ((number1%number2==0) && (number1>number2)) {
actualAnswer = number1 / number2;
} else {
generateNumbers();
}
equation.append(" / ");
}
因为这将重新开始整个过程??,而不是继续更多的数字.
内容总结
以上是互联网集市为您收集整理的java – 随机生成方程和答案全部内容,希望文章能够帮你解决java – 随机生成方程和答案所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。