for循环编译错误

时间:2015-05-21 02:49:04

标签: java syntax

public class contains {
public static void main(String[] args) {
    int[] array = new int[] {0, 1, 2, 3, 4};
    int sum = 0;
    for (i=0, i<=array.length, i++) {
        if (array[i] == 4) {
            return sum;
        }
        sum++;
    }
    return 0;
}

}

我不确定为什么上面的代码失败了。当我尝试编译它时,我得到如下错误。为什么会这样?我想看看我的数组中的索引4是什么。

contains.java:5: error: not a statement
    for (i=0, i<=array.length, i++) {
               ^
contains.java:5: error: ';' expected
    for (i=0, i<=array.length, i++) {
                                  ^
contains.java:5: error: ';' expected
    for (i=0, i<=array.length, i++) {
                                   ^
contains.java:6: error: illegal start of expression
        if (array[i] == 4) {
        ^
contains.java:6: error: ')' expected
        if (array[i] == 4) {
          ^
contains.java:6: error: not a statement
        if (array[i] == 4) {
                     ^
contains.java:6: error: ';' expected
        if (array[i] == 4) {
                         ^
contains.java:11: error: illegal start of type
        return 0;

1 个答案:

答案 0 :(得分:0)

您没有声明ifor循环的部分用分号分隔。 Java数组的初始索引为0,最后一个元素位于array.length - 1,因此您需要<(而不是<=)。您不能return来自int main。我想你想要的东西,

public static void main(String[] args) {
    int[] array = new int[] { 0, 1, 2, 3, 4 };
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i] == 4) {
            break;
        }
        sum++;
    }
    System.out.println(sum);
}

输出

4

array[4]4,所以我认为总和应为4