Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/392: Рейтинг темы: голосов - 392, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 47

Возможно ли задать несколько условий в операторе If

30.05.2012, 18:26. Показов 81463. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
возможно ли задать несколько условий в операторе if
например:
if усл.1 или усл.2 или усл.3.... или усл.N then?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2012, 18:26
Ответы с готовыми решениями:

Можно ли в условном операторе задавать несколько условий?
Можно ли в условном операторе задавать несколько условий?если да, то как?

Case if, задать несколько условий
Добрый вечер Private Sub WorkStarts() i1 = Worksheets("Универсальный расчёт").Cells(2, "U").Value i2 =...

Как задать несколько условий в одном цикле
Здравствуйте, подскажите, пожалуйста, кто знает, как задать несколько условий в одном цикле? Например, сгенерировать текие четыре числа,...

12
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.05.2012, 19:13
Вы про это спрашивали?
Visual Basic
1
2
3
If a < 0 Or c > 0 Or d = 0 Then
   b = 1
End If
3
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 47
31.05.2012, 14:48  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
If instr(,Text1(0).Text,db.mdl,)>0 or _
        instr(,Text1(0).Text,db.pr,)>0 or _
        instr(,Combo1(0).Text,db.os,)>0 or _
        instr(,Text1(2).Text,db.cpu,)>0 or _
        instr(,Combo1(1).Text,db.ram,)>0 or _
        instr(,Text1(3).Text,db.mmr,)>0 or _
        instr(,Text1(4).Text,db.bat,)>0 or _
        instr(,Combo1(2).Text,db.scr,)>0 or _
        instr(,Text1(5).Text,db.diag,)>0 or _
        instr(,Text1(6).Text,db.rslw,)>0 or _
        instr(,Text1(7).Text,db.rslh,)>0 or _
        instr(,Combo1(3).Text,db.bt,)>0 or _
        instr(,Combo1(4).Text,db.wifi,)>0 then
почему-то выделяет красным такую вот запись
0
 Аватар для Апострофф
9908 / 3919 / 742
Регистрация: 11.10.2011
Сообщений: 5,902
31.05.2012, 15:01
Убери лишние запятые из всех скобок -
Visual Basic
1
If instr(Text1(0).Text,db.mdl) then
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
31.05.2012, 15:47
Цитата Сообщение от dekartkaine Посмотреть сообщение
почему-то выделяет красным такую вот запись
Ну, если ты опускаешь необязательные параметры, то и запятые не ставь в начале и в конце, или укажи все-таки их.
Visual Basic
1
If InStr(Text1(0).Text, db.mdl) > 0 Or _
или
Visual Basic
1
If InStr(1,Text1(0).Text, db.mdl,1) > 0 Or _
Вот почитай (хотя это уже другой вопрос, и к теме не относится):

Функция InStr
InStr([Start,]String1,String2[,Compare])
InStrB([Start,]String1,String2[,Compare])
Функция InStr(In String) служит для поиска номера символа(номера байта для InStrB), с которого начинается в заданной строке образец поиска. Поиск идет от указанной позиции слева направо. Поиск вхождения одной строки в другую весьма часто используемая операция. Нумерация символов всегда начинается с единицы

Примечание
В функции InStr при очень длинных строках при текстовом методе сравнения, возможно возникновение ошибки времени исполнения Stack overflow. Избежать этой ошибки можно, переведя исходную строку и образец в один регистр и перейдя на бинарное сравнение

Возвращаемое значение
Возвращает значение типа Variant(Long), указывающее позицию первого появления одной строки внутри другой

Перечень возвращаемых значений Вариант Значение, возвращаемое функцией InStr
String1 имеет нулевую длину 0
String1 имеет значение Null Null
String2 имеет нулевую длину Start
String2 имеет значение Null Null
String2 не найдена 0
String2 найдена внутри String1 Позиция, в которой обнаружено совпадение
Start > String2 0

Параметры Элемент Описание
Start Необязательный. Числовое выражение, которое задает первую позицию для каждого поиска. Если параметр опущен, поиск начинается с позиции первого символа. В том случае, когда значение параметра Start равно Null, возникает ошибка. Параметр Start является обязательным, если задан параметр Compare
String1 Обязательный. Строковое выражение,в котором ведется поиск
String2 Обязательный. Отыскиваемое строковое выражение
Compare Необязательный. Задает тип сравнения для строк. Если значение параметра Compare равно Null, возникает ошибка. В том случае, когда параметр Compare опущен,тип сравнения определяется установками оператора Option Compare

Установки
Для параметра Compare используются следующие установки: Константа Значение Описание
vbUseCompareOption -1 Сравнение выполняется с использованием установок для оператора Option Compare
vbBinaryCompare 0 Выполняется побитовое сравнение
vbTextCompare 1 Выполняется текстовое сравнение
vbDatabaseCompare 2 Только для Microsoft Access. Сравнение выполняется с применением сведений из базы данных пользователя





Добавлено через 1 минуту
Апострофф, извините, опоздал с ответом - не обновил страницу.
1
62 / 4 / 1
Регистрация: 27.04.2014
Сообщений: 100
11.06.2015, 23:37
Подскажите, можно ли задавать сразу несколько значений в условии, например:
If a < 32 Or a = [133, 47, 124, 92, 44, 46, 187, 171] Then ...
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
12.06.2015, 00:20
Для этого используй Select Case.
Visual Basic
1
2
3
4
5
6
Select Case a
Case Is < 32
    ' a < 32
Case 133, 47, 124, 92, 44, 46, 187, 171
    ' [133, 47, 124, 92, 44, 46, 187, 171]
End Select
2
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
12.06.2015, 00:25
Visual Basic
1
2
3
4
Select Case a
Case Is < 32, 133, 47, 124, 92, 44, 46, 187, 171
  '...
End Select
2
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 6
28.02.2017, 15:38
Подскажите, где ошибка:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
' Получистовая стадия
        Dim Lz As Single
        Dim Bz As Single
        Dim Razm As Single
        Lz = TextBox10.Text 'длина обработ. пов.
        Bz = TextBox11.Text 'ширина обработ. пов.
        Razm = TextBox9.Text 'выполняемый размер
        If TextBox2.Text = St2 Then 'если стоит получистовая
            If Lz <= 160 Then 'если длина менее или равна 160
                If Bz <= 160 Then 'если ширина менее или равна 160
                    If Razm <= 80 Then TextBox6.Text = 2.1
                ElseIf Razm < 120 Then
                    TextBox6.Text = 2.3
                ElseIf Razm < 180 Then
                    TextBox6.Text = 2.6
                ElseIf Razm < 250 Then
                    TextBox6.Text = 2.8
                ElseIf Razm < 315 Then
                    TextBox6.Text = 3.1
                ElseIf Razm < 400 Then
                    TextBox6.Text = 3.3
                ElseIf Razm < 500 Then
                    TextBox6.Text = 3.5
                ElseIf Razm < 630 Then
                    TextBox6.Text = 4.2
                ElseIf Razm > 630 Then
                    TextBox6.Text = 4.7
                End If
            End If
        End If
0
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
28.02.2017, 23:21
Откуда появилась переменная St2, да и вообще, перед присваиванием строковых значений из текстбокса числовым переменным рекомендуется выполнять проверку значений на корректность и лучше всего явно производить конвертацию типов с помощью функций Cstr, val, csng etc. Скорее всего, из-за этого и появляются неожиданные ошибки.
0
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 6
01.03.2017, 08:51
St2 была объявлена выше, это не существенно. Не работает сравнение.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
01.03.2017, 11:01
а вот еще способ множества условий:

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_Load()
    Dim i&, d#
    While d < 1: d = Val(InputBox("Угадай, сколько будет 3^4 ?")): Wend
    For i = 1 To 4
        If Choose(i, "11", "21", "81", "511") = d And d = 3 ^ 4 Then Exit For
    Next
    If i < 5 Then MsgBox "Правильно !" Else MsgBox "Неправильно !"
    End
End Sub
0
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 6
01.03.2017, 17:48
Вопрос снимается, разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2017, 17:48
Помогаю со студенческими работами здесь

Когда надо задать несколько условий по скрытию поля
Что делать если надо задать несколько условий по скрытию поля? К примеру: @if(IsNewDoc; False; @if(Authorisers != &quot;&quot;; False; ...

Использование нескольких условий в операторе if
Я решил создать что-то типо калькулятора, но есть одна проблема. У меня получилось сделать так, чтобы при вводе чисел больше 4 программа...

Как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ?
Всем доброго времени суток. If &amp; Else как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ ? Напр В11:С18...

Не правильно работает программа, возможно дело в операторе if
Здравствуйте, начал изучать язык программироваия C++, пркатикуюсь, решая задачи. Сейчас решал задачу, требующая форматировать вывод:...

Несколько выражений в операторе like
Добрый день, задача следующая. Имеем процедуру, на вход получаем параметр bukva(для примера). Процедура: ........ ........ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru