仅在最后一次迭代时输出For循环的值

时间:2013-08-06 14:50:09

标签: java if-statement for-loop sequence

我正在尝试为循环i输出index(i)的值,但仅在最后一次迭代时输出。我得到一个错误或输出i的所有值。以下是我到目前为止的情况:

boolean sequentialSearch(int x) {

       for(int i = 0; i < n; i++)  //n comes from function length()

           if(n != 0) {

               if(list[i] == x) {

                   return true;
               }

               return false;
           }
}

5 个答案:

答案 0 :(得分:2)

尝试:

for(int i = 0; i < n; ++i) {
    if(list[i] == x) { // an array is 0-indexed
        System.out.println("Found at index: " + i);
        return true;   // return true if found
    }
}
System.out.println("Not found!");
return false;      // here, x has never been found, so return false

答案 1 :(得分:0)

我想你需要这样:

boolean sequentialSearch(int x) {
    for(int i=0;i<n;i++) { //n comes from function length()
        if(list[i]==x){   // list comes from somewhere too
            System.out.println(i); // print i
            return true;
        }
    }
    return false;
}

如果您需要从数组尾部打印最后i个可能的开头:

boolean sequentialSearch(int x) {
    for(int i=n-1;i>=0;i--) { //n comes from function length()
        if(list[i]==x){   // list comes from somewhere too
            System.out.println(i); // print i
            return true;
        }
    }
    return false;
}

答案 2 :(得分:0)

为什么你检查我!= 0, 而不是从i=1;

迭代
for(int i = 1; i < n; i++) 
 {
    if(list[i] == x) 
    { 
        return true;
    }
    return false;
 }

这更容易。 : - )

答案 3 :(得分:0)

你真的想打印i并返回一个布尔值吗?由于-1通常用于 not found ,为什么不将其拆分为两种方法。现在,您可以搜索您想要的任何目的,即使它是一个在Web应用程序中System.out不可用的系统。

boolean sequentialSearch(int x) {
    for(int i = 0, n = list.length; i < n; i++) { 
        if(list[i] == x) {
            return i;
        }
    }
    return -1;
}

// Later
int index = sequentialSearch(y);
if (index != -1) {
    System.out.println(y + " found at index " + index);
} else {
    System.out.println(y + " not found");
}    

答案 4 :(得分:0)

如何单独打印最后一个值?

import java.util.Scanner;

public class Fibonacci {

    public static void main(String[] arguments) {
        int n1 = 0, n2 = 1, n3;

        @SuppressWarnings("resource")
        Scanner s = new Scanner(System.in);
        System.out.print("Enter the value of n: ");
        int n = s.nextInt();
        for (int i = 0; i < n; ++i) {   
            n3 = n1 + n2;

            n1 = n2;
            n2 = n3;
        System.out.println(""+n3);
        }
    }
}