Что нового

Массив за пределами цикла

uran238

Новичок
Сообщения
15
Репутация
0
Доброго времени. Имеется код:
Код:
Local $Array[11] = [11, 2, 6, 7, 4, 54] ; объявление массива с присвоением данных
ARR()
Func ARR()
    For $i = 0 To 5
        Global $Key[11]
        $Key[$i] += $Array[$i]

   MsgBox(0, 'Сообщение', $Array[$i])
    Next
    MsgBox(0, 'Сообщение', $Key[0])

EndFunc   ;==>ARR

Как можно возвратить заполненый массив $Key[$i] за пределы функции? Второе сообщение за пределами цикла For..Next уже пустое.
 

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
Так же как и обычную переменную, через RETURN
Код:
Global $aArrayOne[11] = [11, 2, 6, 7, 4, 54] ; объявление массива с присвоением данных

Global $aArrayTwo = ARR()
MsgBox(0, 'Новый массив', 'Размер нового массива: ' & UBound($aArrayTwo))

For $a = 0 To UBound($aArrayTwo) -1
   MsgBox(0, 'Новый массив', $a & ' = ' & $aArrayTwo[$a])
Next

Func ARR()
   Local $iArraySaze = UBound($aArrayOne)
   Local $aArray[$iArraySaze]
   For $i = 0 To $iArraySaze -1
      $aArray[$i] = $aArrayOne[$i]
      MsgBox(0, 'Локальный массив', $i & ' = ' & $aArrayOne[$i])
   Next
   Return $aArray
EndFunc
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
В вашем случае проще вынести объявление глобальной переменной вне самой функции и уж тем более вне цикла:
Код:
Local $Array[11] = [11, 2, 6, 7, 4, 54] ; объявление массива с присвоением данных
Global $Key[11]

ARR()

Func ARR()
    For $i = 0 To 5

        $Key[$i] += $Array[$i]

   MsgBox(0, 'Сообщение', $Array[$i])
    Next
    MsgBox(0, 'Сообщение', $Key[0])

EndFunc   ;==>ARR
 
Верх