2016-12-02 16 views
1

このコードの問題は、if条件を実行しているときです。この状態は、if (pixel.getx() <=100)を使用している場合にのみ機能しますが、var x = pixel.getX() & if (x <= 100)では機能しません。誰かが私に理由を教えてくれますか?javacriptで条件変数を使用する場合

var image = new SimpleImage (200,200); 
print (image); 

for (var pixel of image.values()) 
var x = pixel.getX(); 
var y = pixel.getY() 

if (x <= 100 && y <= 100) 

{ 
pixel.setRed(255); 
pixel.setBlue(0); 
pixel.setGreen(0); 
} 

else if (x > 100) 
{ 
pixel.setBlue(255); 
pixel.setGreen(0); 
pixel.setRed(0); 
} 
print (image); 
+1

'SimpleImage'は何ですか? 'getx'と' getX'は2つの異なるメソッドです。それは問題ですか?それとも質問のタイプミスですか? –

+1

あなたの 'for(var pixel of image.values())'ループは '{'中カッコ '}'を使用していないので、 'var x = pixel.getX(); 'if'文を含む残りのコードは、ループの一部ではありません。 –

+1

'var x = pixel.getX()&if(x <= 100)'は有効な構文ではないので問題になります –

答えて

1

あなたforループは{}が不足しています。 それはあなたがそれを{}

内である必要がforループ内のコードのマルチラインブロックを繰り返す必要がある場合 image.values()

があるとして、あなたの例では、それを持っている方法はvar x = pixel.getX();何度でも実行 ありませんすべてあなたは1文を繰り返している場合

- あなたは{}必要はありません - あなたはあなたのforループが欠落しているif (pixel.getX() <= 100) {...}

1

を持っていたとき、それが働いた理由ですブレース{ }とその動作していない理由です。

変更されたコード、

var image = new SimpleImage (200,200); 
print (image); 

for (var pixel of image.values()) { 
    var x = pixel.getX(); 
    var y = pixel.getY() 

    if (x <= 100 && y <= 100) { 
     pixel.setRed(255); 
     pixel.setBlue(0); 
     pixel.setGreen(0); 
    } else if (x > 100) { 
     pixel.setBlue(255); 
     pixel.setGreen(0); 
     pixel.setRed(0); 
    } 

    print (image); 
} 
関連する問題