簡體   English   中英

Java<identifier> 預期錯誤?</identifier>

[英]Java <identifier> expected error?

編譯這個程序時,我在中間的 for 循環中有 20 個錯誤; 以下只是一個片段:

public static long[] bishopsMasks()
{
    long[] masks = new long[64];

    for (int j = 0; j < 8; j++)
    {
        for (int i = 0; i < 8; i++)
        {
            long x = 0L;

            for (int a = i + 1, int b = j + 1; a < 7 && b < 7; a++, b++)
                x |= bit(a, b);

            for (int a = i + 1, int b = j - 1; a < 7 && b > 0; a++, b--)
                x |= bit(a, b);

            for (int a = i - 1, int b = j + 1; a > 0 && b < 7; a--, b++)
                x |= bit(a, b);

            for (int a = i - 1, int b = j - 1; a > 0 && b > 0; a--, b--)
                x |= bit(a, b);

            masks[i + j * 8] = x;
        }
    }

    return masks;
}

我只是找不到任何問題!

您不能像這樣在 for 循環初始化程序中聲明多個變量:

for (int a = i + 1, int b = j + 1; a < 7 && b < 7; a++, b++)

但是,您可以這樣做(注意在b之前刪除int ):

for (int a = i + 1, b = j + 1; a < 7 && b < 7; a++, b++)

但是,這意味着變量當然必須是相同的類型。

有關詳細信息,請參閱Java 語言規范第 14.14.1 節

刪除b之前的int

public static long[] bishopsMasks()
{
    long[] masks = new long[64];

    for (int j = 0; j < 8; j++)
    {
        for (int i = 0; i < 8; i++)
        {
            long x = 0L;

            for (int a = i + 1, b = j + 1; a < 7 && b < 7; a++, b++)
                x |= bit(a, b);

            for (int a = i + 1, b = j - 1; a < 7 && b > 0; a++, b--)
                x |= bit(a, b);

            for (int a = i - 1, b = j + 1; a > 0 && b < 7; a--, b++)
                x |= bit(a, b);

            for (int a = i - 1, b = j - 1; a > 0 && b > 0; a--, b--)
                x |= bit(a, b);

            masks[i + j * 8] = x;
        }
    }

    return masks;
}

一次聲明多個變量時,不應重復數據類型。

int a = i + 1, b = j + 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM