【问题标题】:for loop compilation errorsfor 循环编译错误
【发布时间】:2015-05-21 02:49:04
【问题描述】:
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;

【问题讨论】:

  • 但是,如果您要使用带值的 return 语句,您还需要 void 以外的返回类型。
  • 你从来没有为 i 定义过类型。你也从来没有用 } 关闭类声明
  • 您还在for 循环中的表达式之间使用,s 而不是;

标签: java syntax


【解决方案1】:

你没有声明ifor 循环的各个部分用分号分隔。 Java 数组的初始索引为0,最后一个元素位于array.length - 1,因此您需要&lt;(而不是&lt;=)。你不能从mainreturnint。我想你想要类似的东西,

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

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2022-11-05
    • 2019-01-05
    • 1970-01-01
    • 2016-08-15
    • 2019-09-03
    相关资源
    最近更新 更多