2016-12-02 2 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 pixel of image.values ​​())' loop не использует '{' braces '}' и поэтому работает только после следующего оператора после него, 'var x = pixel.getX();' остальная часть вашего кода, включая оператор 'if', не является частью цикла. –

+1

'var x = pixel.getX() & if (x <= 100)' недопустимый синтаксис, так что это проблема –

ответ

1

ваш for петля отсутствует {}. все это делает так, как у вас в вашем примере выполнения var x = pixel.getX(); столько раз, сколько есть image.values()

, если вам нужно повторить многофункциональный блок строки кода в течение цикла он должен быть внутри {}

если вы повторяете одно заявление - вам не нужно {} - вот почему он работал, когда вы были 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); 
} 
Смежные вопросы