For循环编译错误


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;

您没有声明ifor回路的各个部分用分号分隔。Java数组的初始索引为0,最后一个元素位于array.length - 1,因此需要<(而不是<=)。你不能从main得到returnint。我想你想要的是,

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

相关内容

最新更新