0

これは私のコードであり、到達不能ステートメントエラーが発生していますが、その理由はわかりません。

public boolean Boardload(String[] args) throws Exception
{
    Robot robot = new Robot();
    Color color3 = new Color(114, 46, 33);
    Color color4 = new Color(180, 0, 0);

    {
        Rectangle rectangle = new Rectangle(0, 0, 1365, 770);

        {
            while(false)
            {
                BufferedImage image = robot.createScreenCapture(rectangle);
                search: for(int x = 0; x < rectangle.getWidth(); x++)
                {
                    for(int y = 0; y < rectangle.getHeight(); y++)
                    {
                        if(image.getRGB(x, y) == color3.getRGB())
                        {
                            return true;
                        }
                    }
                }
            }
        }
        return false;
    }
} 

正確なエラーは次のとおりです。

java:68: unreachable statement
         {
         ^

このコードは、ピクセルが見つかるまでループするはずです。

4

4 に答える 4

7

問題は、あなたのループが

while(false) {

このループは決して実行されませんfalse != true。その結果、Java コンパイラーは、ループの本体で何も実行されないことを伝えているため、ループに到達できません。

ループを次のように変更してみてください

while (true) {

(慣用的な「永遠にループ」)そしてそれが問題を解決するかどうかを確認してください。

お役に立てれば!

于 2012-02-15T22:02:14.773 に答える
4

while(false)は常にfalseあり、ループ本体は実行されません: unreachable。に変更しwhile (true)ます。

于 2012-02-15T22:02:48.207 に答える
2

申し訳ありませんが、それは臭いコードです。Color ローカル変数を宣言した後、および Rectangle 変数を宣言した後、ブレース/ブロックが何をしているのかわかりません。到達不能の主な問題はwhile(false)、関連するブロックが実行されないことです。

于 2012-02-15T22:06:07.200 に答える
2

ステートメントwhile(false)はそのループ内で何も実行しないため、すべてに到達できません。

于 2012-02-15T22:03:13.027 に答える