Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Kiss Ме в|слепую on October 31, 2013, 08:08:27 AM

Title: Баг массива во вложенном цикле?
Post by: Kiss Ме в|слепую on October 31, 2013, 08:08:27 AM
Кто объяснит почему начиная со второго прохода внутреннего цикла в лог попадает 3 элемент массива вместо первого?

Code: (clickermann) [Select]
LOGCLEAR

$x[0]=1
$x[1]=2
$x[2]=3

for ($i, $i<5)
   LOGWRITE ("--------------i=", $i)
   for ($j, $j<3)
      LOGWRITE ("-----j=", $j)
      $x =$x[$j-1]
      LOGWRITE ("x=", $x)
   end_cyc
end_cyc

halt
Title: Re: Баг массива во вложенном цикле?
Post by: Johnny on October 31, 2013, 09:15:36 AM
ты сам себя обманул лол

элемент $x в данном контексте тоже самое что элемент $x[0], ты видимо это понимаешь
в цикле ты присваиваешь нулевому элементу сначала значение нулевого элемента потом первого потом второго.
после первого прохода у тебя в нулевом элементе осталется тройка и на второй прогоне когда ты нулевому элементу снова присваиваешь нулевой элемент ты присваиваешь тройку. тройка в нулевом элементе осталась после первого прогона.

то есть ты делаешь $x = $x = 3 и удивляешься почему $x = 3
Title: Re: Баг массива во вложенном цикле?
Post by: Johnny on October 31, 2013, 09:17:48 AM
ты сам себя обманул лол

элемент $x в данном контексте тоже самое что элемент $x[0], ты видимо это понимаешь
в цикле ты присваиваешь нулевому элементу сначала значение нулевого элемента потом первого потом второго.
после первого прохода у тебя в нулевом элементе осталется тройка и на второй прогоне когда ты нулевому элементу (по умолчанию) снова присваиваешь нулевой элемент (по вычисляемому индексу) ты присваиваешь тройку. тройка в нулевом элементе осталась после первого прогона.

то есть ты делаешь $x = $x = 3 и удивляешься почему $x = 3
Title: Re: Баг массива во вложенном цикле?
Post by: Kiss Ме в|слепую on October 31, 2013, 09:24:33 AM
не знал что x это тоже самое что x[0]  :)