0

如果我的输入是另一个名为SomeNumbers. 如果你运行它,它会给你结果,因为它不是光速数组中的数字。

我也很难指出实际问题出在哪里,因为我可以在 jGrasp 中出于任何原因使用我的调试工具。

这是用户输入数字以查看是否匹配的主要应用程序。

import java.util.Scanner;

public class SomeNumbersClient {

public static void main(String[] args) {

  SomeNumbers testNumbers = new SomeNumbers();

  Scanner userInput = new Scanner(System.in);
  System.out.print("Enter Integer Value: ");
  int input = userInput.nextInt();

  testNumbers.setNumber(input);

  if (testNumbers.getTest()) {
     System.out.println("The numbers match");
  } else {
     System.out.println("The numbers don't match");
  }

}

}

现在这是我调用该getTest方法以查看布尔结果是真还是假的类。然后我在客户端中有 if 语句,看看它是否为真,然后它将显示匹配,如果不是,则不匹配。

public class SomeNumbers {
       private int[] numbers = { 5658845, 4520125, 7895122, 8777541, 8451277, 1302850,         8080152, 4562555, 5552012, 5050552, 7825877, 120255, 1005231, 6545231, 3852082, 7576651,7881200, 4581002};
       private int number;
       private int index = 0;
       private boolean test = true;

       public void setNumber(int input) {
           number = input;
       }

       public boolean getTest(){
           while (index < numbers.length){
               if (number != numbers[index]){
                   test = false;
                   index++;
               } else {
                   test = true;
               }
              }
        return test;
       }
      }

抱歉,代码被切碎了,感谢您的帮助。

4

1 回答 1

1

这是 getTest 函数的正确版本,您的问题是因为您找到匹配项(并将变量 test 设置为 true),但随后您继续搜索并且下一个数字将“test”转换为 false

public boolean getTest()
{
    index = 0;
    while (index < numbers.length)
        if (number != numbers[index])
            index++;
        else
            return true;
    return false;
}
于 2013-10-10T00:11:57.027 回答