Что нового

Конструкция If..Then..Else или Swith...Case ? Совсем не работают

udaff2011

Новичок
Сообщения
4
Репутация
0
Классическая задача - при выборке данных из массива происходит ерунда. Предпочитаю пользоваться паттернами:

Код:
#Include <Array.au3>

Dim $avArrayGoin2[11]
$avArrayGoin1 = _ArrayCreate("","JPM", "Holger", "Jon", "Larry", "Jeremy", "Valik", "Cyberslug", "Nutster", "Tylo", "JdeB")

For $x=1 To UBound($avArrayGoin1,1)-1
$avArrayGoin2[$x]=$avArrayGoin1[$x];StringRegExpReplace($arr[$x][2]
$avArrayGoin2[$x]=StringRegExpReplace($avArrayGoin1[$x] , 'Larry|Jeremy', "---------", 1)
$avArrayGoin2[$x]=StringRegExpReplace($avArrayGoin1[$x] , 'Nutster', "+++++++++", 1)

EndIf		 

Next
;в результате только первое условие срабатывает: "------------"
_ArrayDisplay($avArrayGoin2,'в результате '&UBound($avArrayGoin2,1))



Однако это не сработало, ожидаемый результат - плюсы и черточки нифига не появляются. :mad: Далее пытался воспользоваться справочной конструкцией If..Then..Else или Swith...Case , но результат тот-же :laugh:

Код:
#Include <Array.au3>

Dim $avArrayGoin2[11]
$avArrayGoin1 = _ArrayCreate("","JPM", "Holger", "Jon", "Larry", "Jeremy", "Valik", "Cyberslug", "Nutster", "Tylo", "JdeB")

For $x=1 To UBound($avArrayGoin1,1)-1

If 		$avArrayGoin1[$x]='Larry' Or 'Jeremy' Then
		 $avArrayGoin2[$x]="---------"
ElseIf	$avArrayGoin1[$x]='Nutster' Then
		  $avArrayGoin2[$x]="+++++++++"
Else 	$avArrayGoin2[$x]=$avArrayGoin1[$x]

EndIf		 

Next

_ArrayDisplay($avArrayGoin2,'в результате '&UBound($avArrayGoin2,1))


Честно - я в шоке: предикаты bla-bla -bla If..Then..Else совсем не работают. Подскажите пожалуйста вариант решения. :wacko:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
что ты ожидаешь от этой строки?
Код:
If      $avArrayGoin1[$x]='Larry' Or 'Jeremy' Then

она всегда будет давать истину. т.к. ты проверяешь истинность одного из двух условий, с учетом что второе условие истинно всегда, т.к. любая строка ненулевой длины после преобразования даст True. если хочешь проверить равенство элемента массива двум значениям, то так и надо писать
Код:
If $avArrayGoin1[$x]='Larry' Or $avArrayGoin1[$x]='Jeremy' Then
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
udaff2011,
Еще поменяйте эту строку
Код:
;...
Else $avArrayGoin2[$x] = $avArrayGoin1[$x]
;...
на эти:
Код:
;...
Else
$avArrayGoin2[$x] = $avArrayGoin1[$x]
;...
 
Верх