Автор Тема: [Ошибки] Ошибка при использовании вложенных условных операторов While и If  (Прочитано 3788 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн voody [?]

  • Новичок
  • *
  • Сообщений: 7
  • Репутация: 0
    • Награды
Здравствуйте.

Столкнулся наверное с банальной ошибкой, но не получается разобраться в чем дело. вроде как все правильно и просто. Но при компилировании кода вида

Код: AutoIt [Выделить]
Func my_func()

    While ($a<$b)
        If $c=1 Then SoundPlay("error.wav",1)
        Else
        SoundPlay("ding.wav", 1)
            While ($p > $q)
                    ;some code
            WEnd
        EndIf
    WEnd

EndFunc
 


возникает ошибка
ERROR: missing Wend.
      EndIf
      ^
REF: missing Wend.
   While
   ^
ERROR: syntax error
      EndIf
      ^

в хелпе по условным операторам написано, что они могут быть вложенными:
Цитировать
If statements may be nested.

в чем мой косяк ?
« Последнее редактирование: Январь 09, 2010, 02:03:29 от CreatoR »

Русское сообщество AutoIt


Оффлайн gregaz [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1166
  • Репутация: 298
  • Пол: Мужской
    • Награды
в чем мой косяк ?
Вообще-то надо так :
Код: AutoIt [Выделить]
Func my_func()

    While $a<$b
        If $c=1 Then
            SoundPlay("error.wav",1)
        Else
            SoundPlay("ding.wav", 1)
            While $p > $q
                    ;some code
            WEnd
        EndIf
    WEnd

EndFunc

 



Добавлено: Январь 08, 2010, 19:14:14
Выражение :
Код: AutoIt [Выделить]
If $c=1 Then SoundPlay("error.wav",1)

самодостаточное.
Оно может использоваться только без последующих :  Else   и   EndIf
« Последнее редактирование: Январь 08, 2010, 19:15:26 от gregaz, Причина: Объединение сообщений »
Самая большая проблема – её сформулировать. 

Оффлайн voody [?]

  • Новичок
  • *
  • Сообщений: 7

  • Автор темы
  • Репутация: 0
    • Награды
то есть дело в скобках ? скобки убрал - заработало. остальное идентично  :blink:

Русское сообщество AutoIt


Оффлайн snoitaleR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 854
  • Репутация: 223
  • Пол: Мужской
    • Награды
voody
Если используешь ключевое слово Else, то нельзя вставлять команды после ключевого слова Then в той же строке...
Надо эти команды перенести на следующую или следующие строки до ключевого слова Else...
Главное в жизни человека - это отношение...

Оффлайн voody [?]

  • Новичок
  • *
  • Сообщений: 7

  • Автор темы
  • Репутация: 0
    • Награды
Точно! разобрался )
спасибо.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
3796 Просмотров
Последний ответ Январь 23, 2011, 04:26:40
от Yashied
2 Ответов
4224 Просмотров
Последний ответ Март 10, 2011, 18:23:42
от beve
17 Ответов
6772 Просмотров
Последний ответ Май 25, 2011, 18:59:33
от Yashied
4 Ответов
3892 Просмотров
Последний ответ Август 21, 2013, 03:19:10
от AZJIO
4 Ответов
1801 Просмотров
Последний ответ Август 22, 2015, 16:44:46
от andy7
0 Ответов
580 Просмотров
Последний ответ Август 22, 2015, 17:00:37
от madmasles
6 Ответов
1570 Просмотров
Последний ответ Май 06, 2016, 06:39:57
от joiner
2 Ответов
1014 Просмотров
Последний ответ Август 21, 2017, 17:53:18
от Vitorio
2 Ответов
417 Просмотров
Последний ответ Май 11, 2018, 17:02:34
от dr.room
2 Ответов
174 Просмотров
Последний ответ Апрель 17, 2019, 14:20:20
от Cornet