2016-12-02 101 views
1

這段代碼的問題是當我執行if條件時。條件只適用於如果我使用if (pixel.getx() <=100)但不適用於var x = pixel.getX() & if (x <= 100)。有人能告訴我爲什麼嗎?如果javascript中使用變量條件

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'是兩種不同的方法。這是問題嗎?或者只是在問題中輸入錯誤? –

+1

你的'for(var image.values()的像素)'循環沒有使用'{'braces'}',因此它只能在它後面的下一條語句上運行,'var x = pixel.getX();'The其餘的代碼,包括'if'語句,不是循環的一部分。 –

+1

'var x = pixel.getX()&if(x <= 100)'是無效的語法,所以這是一個問題 –

回答

1

for循環缺少{}。 它所做的一切,你有它在你的榜樣的方式是 執行var x = pixel.getX();多次有image.values()

如果您需要在for循環內它需要重複的代碼多路塊在裏面{}

如果你是一個重複的語句 - 你不需要{} - 這就是爲什麼它的工作,當你有if (pixel.getX() <= 100) {...}

1

for環缺少括號{ },這就是爲什麼它不工作。

修改後的代碼,

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); 
}