powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование оператора If...Then ; Else
15 сообщений из 15, страница 1 из 1
Использование оператора If...Then ; Else
    #36778550
ДаркТМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub aa()
    Dim a As Single, b As Single, c As Single
    Dim s As String
    s = InputBox("enter a")
    a = Val(s)
    s = InputBox("enter b")
    b = Val(s)
    c = Sqr(a ^  2  + b ^  2 )
    s = Str(c)
    If MsgBox(s, vbYesNo, "calculate square*?") = vbYes Then MsgBox Str(a * b /  2 )
    Else: MsgBox ("bb")

End Sub
Вопрос такой - почему после Else vba автоматом ставит двоеточие и отказывается выполнять программу, мотивируя авторElse without If*?
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778568
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДаркТМ,
Код: plaintext
1.
2.
3.
4.
5.
If MsgBox(s, vbYesNo, "calculate square*?") = vbYes Then 
MsgBox Str(a * b /  2 )
    Else
 MsgBox ("bb")
end if
пиши так и не парься
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778569
ДаркТМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сработать сработало, однако все равно не понятно, почему он не хочет делать правильно, когда это все стоит в одну линию*?
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778586
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДаркТМ,
как написано у Вас:
Код: plaintext
1.
2.
If MsgBox(s, vbYesNo, "calculate square*?") = vbYes Then MsgBox Str(a * b /  2 )
    Else: MsgBox ("bb")
Так ошибка Эльзе Ичхоут Иф, или Вы Выложили отрезок кода не весь
У Адуки написано правильно, но можно ещё писать так:
Код: plaintext
1.
If MsgBox(s, vbYesNo, "calculate square*?") = vbYes Then MsgBox Str(a * b /  2 )  Else MsgBox ("bb")
Разницы нет
Просто кто как любит читать
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778587
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДаркТМ,
а не работает в Вашем коде, потому что
эту строку
Код: plaintext
1.
If MsgBox(s, vbYesNo, "calculate square*?") = vbYes Then MsgBox Str(a * b /  2 )
ВБА воспринимает как должное, а строку
Код: plaintext
1.
Else: MsgBox ("bb")
как бред и ругается
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778624
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

именно VBA ругается

в некоторых языках такая конструкция допустима (например, MUMPS)
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778692
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9в некоторых языках такая конструкция допустима (например, MUMPS)

Читайте хелп по IF. Два варианта использования:
Код: plaintext
1.
2.
3.
4.
5.
6.
If условие Then
  оператор
  оператор
Else
  оператор
  оператор
End If
Код: plaintext
If условие Then оператор Else оператор: оператор
В других языках возможно только в тех, где есть операторные скобки или разделители операторов. В VB разделителем операторов выступает конец строки поэтому вы не можете произвольничать с концом строки
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36778697
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюИчхоут
Зайди сюда , найди рядом со словом without динамик, нажми на него и послушай, как это произносится, прежде чем позориться в очередной раз.
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36779649
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, давным давно сказал изучал немецкий и писать на иностранных буквах не желаю, только в исключительных случаях
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36779974
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9в некоторых языках такая конструкция допустима (например, MUMPS)Другие языки это другие языки. В синтаксисе одного языка, синтаксис другого не аргумент.

Shocker.ProЧитайте хелп по IF. Два варианта использования:Вообще-то их несколько больше. Примерно так два с двумя половинками :)
1)
Код: plaintext
1.
2.
3.
4.
if <condition> then
    <commands for true>
[else
    <commands for false>]
end if
2)
Код: plaintext
if <condition> then <commands for true> [else : <commands for false>]
Команды в наборах разделяются либо знаками перевода строки, либо двоеточиями.
Слово else с соответсвующим ему набором команд может отсутствовать.
В первом синтаксисе обязателен закрывающий end if, во втором синтаксисе, все должно быть умещено в одну строку.

Shocker.ProВ других языках возможно только в тех, где есть операторные скобки или разделители операторов.Опять "не совсем" :) Правильнее будет: "в тех языках которые не обращают внимания на перевод строки". Операторные скобки и разделители не так важны в данном конкретном случае.
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36780072
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПримерно так два с двумя половинками :)

Опять "не совсем" :) Правильнее будет:

Я думал, это я зануда
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36780296
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProWhite OwlПримерно так два с двумя половинками :)

Опять "не совсем" :) Правильнее будет:

Я думал, это я зануда Теперь ты знаешь правду.
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36783212
NashRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После Else ставит двоеточие, потому что думает, что это метка.
А скомпилить не может, потому как зарезервированное ключевое слово не может использоваться как метка.
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36783911
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двоеточие означает не только метки, но и разделитель между командами, вместо переноса строки. if then else это одна команда, : другая команда.
...
Рейтинг: 0 / 0
Использование оператора If...Then ; Else
    #36783921
NashRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, не посмотрел в редакторе: не форматирует он else: как метку.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование оператора If...Then ; Else
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]