学习java和can';t算出y=m*x+;B

学习java和can';t算出y=m*x+;B,java,Java,创建代数导师尝试创建随机整数来解y=m*x+b。搜索发现很多用户都使用过这个等式,但没有生成一个随机问题来要求回答并检查是否正确。这就是我到目前为止写的东西 import java.util.Scanner; class AlgebraTutor { private static Scanner in = new Scanner(System.in); public static void main(String[] args) { for (int x = 0; x &l

创建代数导师尝试创建随机整数来解y=m*x+b。搜索发现很多用户都使用过这个等式,但没有生成一个随机问题来要求回答并检查是否正确。这就是我到目前为止写的东西

import java.util.Scanner;
class AlgebraTutor {
  private static Scanner in = new Scanner(System.in);
  public static void main(String[] args) {

      for (int x = 0; x < 1; x++){
          System.out.println("X = " + ((int)(Math.random() * 200) -99));
      }    

      for (int m = 0; m < 1; m++){
          System.out.println("M = " + ((int)(Math.random() * 200) -99));
      }

      for (int b = 0; b < 1; b++){
          System.out.println("B = " + ((int)(Math.random() * 200) -99));
      }

  }
}    

但那不是我想象的那样。我希望能够输入一个答案,并让它检查正确或错误。谢谢你给我的建议,让我度过难关

您需要将值存储在变量中,例如:

int x = ((int)(Math.random() * 200) -99));
另外,for循环是不必要的,因为它们只运行一次,所以您可以只运行程序而不是循环一次

因此,最终您的代码应该是这样的:

import java.util.Scanner;
class AlgebraTutor {
  private static Scanner in = new Scanner(System.in);
  public static void main(String[] args) {
      int x = ((int)(Math.random() * 200) -99);
      int m = ((int)(Math.random() * 200) -99);
      int b = ((int)(Math.random() * 200) -99);
      System.out.println("X = " + x);
      System.out.println("M = " + m);
      System.out.println("B = " + b);
      System.out.println("Y = " + m*x+b);

  }
}   
import java.util.Scanner;
class AlgebraTutor {
  private static Scanner in = new Scanner(System.in);
  public static void main(String[] args) {
      int x = ((int)(Math.random() * 200) -99);
      int m = ((int)(Math.random() * 200) -99);
      int b = ((int)(Math.random() * 200) -99);
      int y = m*x+b;
      System.out.println("X = " + x);
      System.out.println("M = " + m);
      System.out.println("B = " + b);
      int INPUT = in.nextInt();
      if(INPUT == y){
         System.out.println("You Got It Right!");
         System.out.println("Y = " + y);
      } else {
         System.out.println("You Got It Wrong :(");
         System.out.println("The Answer was: Y = " + y);

      }
   }
} 
要让它检查答案是真是假,你必须这样做:

import java.util.Scanner;
class AlgebraTutor {
  private static Scanner in = new Scanner(System.in);
  public static void main(String[] args) {
      int x = ((int)(Math.random() * 200) -99);
      int m = ((int)(Math.random() * 200) -99);
      int b = ((int)(Math.random() * 200) -99);
      System.out.println("X = " + x);
      System.out.println("M = " + m);
      System.out.println("B = " + b);
      System.out.println("Y = " + m*x+b);

  }
}   
import java.util.Scanner;
class AlgebraTutor {
  private static Scanner in = new Scanner(System.in);
  public static void main(String[] args) {
      int x = ((int)(Math.random() * 200) -99);
      int m = ((int)(Math.random() * 200) -99);
      int b = ((int)(Math.random() * 200) -99);
      int y = m*x+b;
      System.out.println("X = " + x);
      System.out.println("M = " + m);
      System.out.println("B = " + b);
      int INPUT = in.nextInt();
      if(INPUT == y){
         System.out.println("You Got It Right!");
         System.out.println("Y = " + y);
      } else {
         System.out.println("You Got It Wrong :(");
         System.out.println("The Answer was: Y = " + y);

      }
   }
} 

示例中的变量x、m和b位于每个for循环的范围内,但在循环的
}
之后消失

int x = (int)(Math.random() * 200) -99); // these variables will live long enough.
int m = (int)(Math.random() * 200) -99);
int b = (int)(Math.random() * 200) -99);

System.out.println("X = " + x);
System.out.println("M = " + m);
System.out.println("B = " + b);


System.out.print("Y = " + m * x + b);

这应该是可行的,但请注意,当您尝试将这些数字像“x/b”一样进行除法时要小心-您将需要对浮点进行转换(google除以整数)

您需要帮助的部分是什么?获取用户输入?存储
m
x
b
的随机值,然后使用它们?还有别的吗?你的循环没有多大意义。您可能需要一个重复生成
m
x
b
的循环,然后获取用户输入并检查答案。(您还需要一种方法让用户指示循环应该退出。)此外,如果您只需要整数,请尝试创建
java.util.Random
的实例,并使用其
nextInt(bound)
方法。一位朋友告诉我
java.util.Random
,但我从未听说过它或如何使用它。不过,我认为这会带来更多好处。这是否意味着我将不再使用以前得到的x、m和b,而是将它们创建为
intx=nextInt(100)+1?因为您需要介于-100和+100之间的数字,所以可能需要
intx=rand.nextInt(201)-100
(假设
rand
是您的
Random
对象,并且包含-100和+100的边界)。
println(“Y=“+m*x+b)
将无法正常工作,因为这两个
+
运算符都是字符串串联。您需要一个括号,以便第二个
+
成为加法运算符:
println(“Y=“+(m*x+b))