Java 对于这个简单的循环,还有更优雅的解决方案吗?

Java 对于这个简单的循环,还有更优雅的解决方案吗?,java,arrays,loops,Java,Arrays,Loops,您好,我是编程新手,我正在尝试解决一个问题,在这个问题中,我得到了一个由10个随机数组成的数组,我必须说明数是否在数组中 如果是-则程序必须显示消息“我找到了!”,如果不是-“该数字不在数组中!” 我写了这个解决方案,我想知道是否有更简单、更快的方法来解决它(Java语言) 输入:一个数字和一个数字数组 int cont=0; for(i=0; i<10;i++){ if(numbers[i]==number){ System.out.println("I foun

您好,我是编程新手,我正在尝试解决一个问题,在这个问题中,我得到了一个由10个随机数组成的数组,我必须说明
数是否在数组中

如果是-则程序必须显示消息“我找到了!”,如果不是-“该数字不在数组中!”

我写了这个解决方案,我想知道是否有更简单、更快的方法来解决它(Java语言)

输入:一个数字和一个数字数组

int cont=0;

for(i=0; i<10;i++){
  if(numbers[i]==number){
    System.out.println("I found it");
    cont++;
    break;
  }
}
if(cont==0)
  System.out.println("That number is not in the array!");
int cont=0;
对于(i=0;i请这样尝试(Java 8及更高版本):


到处使用流,仅仅因为它们是流,不是一个好主意,也不会使代码更干净,也不会使代码更可读,甚至更快

你的循环看起来不错,我不认为你可以在这里提高性能。我唯一要改变的是,我引入了find标志,代码少了一点

boolean found=false;

for(i=0; i<10; i++) {
    if(numbers[i]==number) {
        System.out.println("I found it");
        found=true;
        break;
    }
}
if(!found)
    System.out.println("That number is not in the array!");
boolean-found=false;

for(i=0;iIt可以做得更好,例如,当您发现任何情况时,通过直观的
break
ing for循环(因为没有必要寻找更多)。您正在实现一个经典的搜索算法。如果没有对随机数进行排序,您的解决方案通常是最有效的(线性搜索),前提是您添加了一个
分隔符
,正如另一条评论所指出的。但是,如果对随机数进行排序,那么您可以执行二进制搜索,这是对数搜索,效率更高。下面是一个二进制搜索的示例:。是的!我建议使用的一些工具是。您可以做一些真正有趣的事情(例如这种搜索)代码很少。我认为最后一个条件应该是
if(cont==0)
。或者只使用
布尔值而不是计数。您应该在找到数字后返回。这样,您就不需要在末尾使用if语句。
boolean found=false;

for(i=0; i<10; i++) {
    if(numbers[i]==number) {
        System.out.println("I found it");
        found=true;
        break;
    }
}
if(!found)
    System.out.println("That number is not in the array!");