繁体   English   中英

如果输入与数组列表中的数字匹配,则无法使方法(getTest)返回真实的布尔方法结果

[英]Can't get method (getTest) to return true boolean method result if input matches a number in my array list

如果输入的数字是另一个名为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方法上调用的类,以查看布尔结果是true还是false。 然后,我在客户端中使用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;
       }
      }

对不起,代码被砍断了,我们将不胜感激。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM