Что нового

Данные, строки С увеличением переменной добавляется переменная

roman82101

Новичок
Сообщения
18
Репутация
1
Можно ли написать менее банально и универсальнее, тоесть $i может закончиться на цифре 3 или на 10 либо любой другой
Код:
If $i = 2 Then $p = $n0 + $n1
If $i = 3 Then $p = $n0 + $n1 + $n2
If $i = 4 Then $p = $n0 + $n1 + $n2 + $n3
If $i = 5 Then $p = $n0 + $n1 + $n2 + $n3 + $n4
If $i = 6 Then $p = $n0 + $n1 + $n2 + $n3 + $n4 + $n5
If $i = 7 Then $p = $n0 + $n1 + $n2 + $n3 + $n4 + $n5 + $n6
 

Prog

Продвинутый
Сообщения
592
Репутация
72
Используйте цикл и массив вместо переменных $nX.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
примерно так
Код:
If $i > 1 Then
    For $j = 2 To $i
        $p += Eval("n" & ($j - 1))
    Next
   $p +=  $n0
EndIf

; с массивом
If $i > 1 Then
    For $j = 2 To $i
        $p += $n($j)
    Next
   $p +=  $n0
EndIf

знать бы ещё что за переменные с какого потолка, а то может и Eval() там не нужен.
 
Последнее редактирование:
Автор
roman82101

roman82101

Новичок
Сообщения
18
Репутация
1
примерно так
Код:
If $i > 1 Then
    For $j = 2 To $i
        $p += Eval("n" & ($j - 1))
    Next
   $p +=  $n0
EndIf

; с массивом
If $i > 1 Then
    For $j = 2 To $i
        $p += $n($j)
    Next
   $p +=  $n0
EndIf

знать бы ещё что за переменные с какого потолка, а то может и Eval() там не нужен.
Благодарю за пример, но с массивом в консоли пишет "Variable cannot be accessed in this manner"
А с Eval не правильно считает, делает $n0 + $n0 даже когда $i разное
Сообщение автоматически объединено:

знать бы ещё что за переменные
Код:
For $nN = 0 To $i - 1
    $Name01 =  $Files1[$nN]
    $n = ;Получаем некоторую цифру из $Name01
    Assign('n'&$nN, $n)
Next

Может проще здесь посчитать?
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
Может проще здесь посчитать?
Вам уже Prog предложил: вместо отдельных переменных создать массив
Код:
Global $n[$i]
For $nN = 0 To $i - 1
    $Name01 =  $Files1[$nN]
    $d = ; Получаем некоторую цифру из $Name01
    $n[$nN] = $d
Next

Теперь доступ к "переменным" вместо $n0, $n1 будет $n[0], $n[1]. И решение из описания темы может быть таким
Код:
$p = 0
For $j = 0 To $i - 1
  $p += $n[$j]
Next
 
Автор
roman82101

roman82101

Новичок
Сообщения
18
Репутация
1
Это хорошо, но без примеров новичку сложно
доступ к "переменным" вместо $n0, $n1 будет $n[0], $n[1]
Да, получилось. Примеры это хорошо)
Благодарю, помогло
 
Верх