gpt4 book ai didi

Java,随机运算符;在方法中调用相同的方法

转载 作者:行者123 更新时间:2023-11-30 02:05:07 25 4
gpt4 key购买 nike

我正在努力学习Java。我尝试解决一个小问题。此时我不知道该尝试什么了。我想生成 2 个随机数和 2 个随机运算符 (+/-)。如果这些结果在 0-20 之间,则打印一些内容,否则重新开始,直到结果在该范围内。调用方法时出现错误:randomQuestion();提前致谢!

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

public class ExercicesMathQuizz {
Random random = new Random();
private int randomQuestion(){

//generate 2 random numbers
int number = random.nextInt(15)+1;
int number2 = random.nextInt(15)+1;
//initiate result
int res = 0;
//operator
String operator = randomOperator();

//if operator is "+" do sum
//otherwise do subtraction
if (operator.equals("+")) {
res = num1+num2;
return res;
}
//if(operator.equals("-")) {
else {
res = num1-num2;
return res;
}

}

private void checkResult() {
int res = randomQuestion();
//if the result is between 0 and 20 (inclusive)
if (res > 0 && res <= 20) {
System.out.println(res + " is between 0-20");
}
else {
//start over again with new numbers
randomQuestion();
}

//generate a random operator
private String randomOperator() {
return random.nextBoolean() ? "+" : "-";

}
}

最佳答案

1)某些地方的变量名称错误。您将这两个数字初始化为 numbernumber2,但稍后在程序中调用 num1num2 (我'我假设这些是相同的变量。

2) checkResult 方法后面缺少括号

3)您将所有方法设为私有(private)。根据您尝试执行的操作,这可能会导致问题。

4) 您永远不会从 randomQuestion 方法调用 checkResult()。由于无论 randomQuestion() 方法中有什么,它都会生成全新的结果,因此这是一个问题。我想让该方法接受一个整数,检查它是否有效,然后返回一个 boolean 变量。然后在randomQuestion()中您可以循环直到结果有效。检查下面的代码:

static Random random = new Random();
public void randomQuestion(){
boolean valid = false;
int res = 0;
while(!valid) {
//generate 2 random numbers
int number = random.nextInt(15)+1;
int number2 = random.nextInt(15)+1;
//initiate result

//operator
String operator = randomOperator();

//if operator is "+" do sum
//otherwise do subtraction
if (operator.equals("+")) {
res = number+number2;
valid = checkResult(res);
}
//if(operator.equals("-")) {
else {
res = number-number2;
valid = checkResult(res);

}
}
System.out.println(res + " is between 1-20");
}

public boolean checkResult(int res) {
//int res = randomQuestion();
//if the result is between 0 and 20 (inclusive)
if (res > 0 && res <= 20) {
return true;
}
else {
//start over again with new numbers
return false;
}
}
//generate a random operator
private String randomOperator() {
return random.nextBoolean() ? "+" : "-";
}
public static void main(String[] args) {
Example example = new Example();
example.randomQuestion();

}

关于Java,随机运算符;在方法中调用相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com