Java 显示数组中包含的值

Java 显示数组中包含的值,java,arrays,printing,Java,Arrays,Printing,我想显示一条消息,指示我的rollValue数组中是否存在输入value 我的代码不能正确识别这些数字。这个search方法就是我尝试过的,但是为什么它不能显示正确的消息呢 public void search(int value) { for (int i = 0; i < rollValue.length; i++) { if (rollValue[i] == value) { System.out

我想显示一条消息,指示我的
rollValue
数组中是否存在输入
value

我的代码不能正确识别这些数字。这个
search
方法就是我尝试过的,但是为什么它不能显示正确的消息呢

public void search(int value)
{
    for (int i = 0; i < rollValue.length; i++)
    {
        if (rollValue[i] == value)
        {        
            System.out.println(value + " was found");
        }            
        else
        {
            System.out.println(value + " was not found");
        }
        break;
    }
}
公共无效搜索(int值)
{
for(int i=0;i
您的
for
循环在第一次迭代后中断。将
break
移动到用于查找值的
中,可能如下所示:

for (int i = 0; i < rollValue.length; i++)
        {
            if (rollValue[i] == value)
            {        
                System.out.println(value + " was found");
               break;

            }

            else
            {
                System.out.println(value + " was not found");
            }
        }
for(int i=0;i
此外,您可能不需要一直打印“未找到”字符串,因此请将其删除。

您需要(可能)迭代每个值,然后才能确定是否找到它。制定两种方法。差不多

private boolean hasValue(int value) {
    for (int roll : rollValue) {
        if (value == roll) {
            return true;
        }
    }
    return false;
}
public void search(int value) {
    for (int roll : rollValue) {
        if (roll == value) {
            System.out.printf("%d was found%n", value);
            return;
        }
    }
    System.out.printf("%d was not found%n", value);
}
然后您可以通过调用
hasValue
like来实现
search

public void search(int value)
{
    if (hasValue(value)) 
    {        
        System.out.println(value + " was found");
    }
    else
    {
        System.out.println(value + " was not found");
    }
}
作为一条直线

您可以在
搜索
中添加短路
返回
,并执行类似操作

private boolean hasValue(int value) {
    for (int roll : rollValue) {
        if (value == roll) {
            return true;
        }
    }
    return false;
}
public void search(int value) {
    for (int roll : rollValue) {
        if (roll == value) {
            System.out.printf("%d was found%n", value);
            return;
        }
    }
    System.out.printf("%d was not found%n", value);
}

这就是代码所发生的事情。3已找到2未找到2未找到2未找到2未找到2未找到2已找到found@MaxLawrence我知道这个问题就要来了;-)只需使用默认值为false的布尔标志。如果找到项,请在中断循环之前设置标志。在外循环中,检查标志并相应地打印。布尔值是否在for循环中?@MaxLawrence如果我告诉你所有你学不到的东西。所以,让它符合逻辑。你越挣扎,你记住的东西就越长。祝你好运!