DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu

Operatory VBA: arytmetyczne, logiczne, porównania, przypisania

Operator to najmniejsza jednostka kodu VBA, którą można uruchomić. Instrukcja może zadeklarować lub zdefiniować zmienną, ustawić opcję kompilatora VBA lub wykonać jakąś akcję w programie.

W VBA jest tylko 7 operatorów arytmetycznych, cztery standardowe: dodawanie (+), odejmowanie (-), mnożenie (*), dzielenie (/) i jeszcze trzy:

  • potęgowanie (^), na przykład 2^3 = 8 ;
  • dzielenie liczb całkowitych (\). Dzieli pierwszą liczbę przez drugą, odrzucając (nie zaokrąglając) część ułamkową. Na przykład, 5\2 = 2 ;
  • podział modulo (Mod). Dzieli pierwszą liczbę przez drugą, zwracając tylko resztę z dzielenia. Na przykład, 5 Mod 2 = 1.

Operatorem przypisania w VBA jest znak równości. Można to napisać tak:

Niech nVar = 10

lub nawet prościej:

nvar = 10

W drugim przypadku nie myl znaku równości z operatorem równości.

Wyrażenie

nvar = 10

oznacza "ustaw zmienną nVar na 10", a jeśli linia wygląda tak:

Jeśli (nVar = 10)

oznacza to "jeśli wartość zmiennej nVar jest równa 10".

Jeśli musisz przypisać obiekt do zmiennej, robi się to w inny sposób.

W VBA jest tylko 8 operatorów porównania:

  • równość (=), na przykład Jeśli (nVar = 10);
  • większe niż i mniejsze niż (> i<), например, Jeśli (nVar > 10);
  • większe lub równe i mniejsze lub równe (>= i<=), например, Jeśli (nVar >= 10);
  • nie równe (<>), na przykład, Jeśli(nVar<>10) ;
  • porównanie obiektów (Is). Określa, czy zmienne obiektu odnoszą się do tego samego obiektu, czy do różnych, na przykład If(obj1 to obj2);
  • podobieństwo (jak). Porównuje obiekt ciągu ze wzorcem i określa, czy wzorzec pasuje.

Operatory porównania zawsze zwracają prawdę lub fałsz — prawda, jeśli twierdzenie jest prawdziwe, a fałsz, jeśli jest fałszywe.

Trochę o porównywaniu wartości ciągów:

  • podczas porównywania wartości ciągów wielkość liter jest rozróżniana;
  • brane są również pod uwagę spacje w wartościach ciągów;
  • podczas porównywania ciągów tekstowych domyślnie więcej/mniej, są one po prostu porównywane kody binarne postacie - co mniej więcej. Jeśli chcesz użyć kolejności alfabetycznej, możesz użyć polecenia

Opcja Porównaj tekst

Trochę więcej o operatorze Like. Jego ogólna składnia wygląda tak:

Wyrażenie1 Jak Wyrażenie2

W takim przypadku Expression1 jest dowolnym wyrażeniem tekstowym VBA, a Expression2 jest szablonem przekazywanym do operatora Like. W tym wzorcu możesz użyć specjalnych symboli wieloznacznych (patrz Tabela 3.1)

Patka. 3.1 Wildcards dla operatora LIKE

Bardzo często przy testowaniu kilku warunków stosuje się operatory logiczne:

  • AND - logiczne AND, oba warunki muszą być prawdziwe;
  • OR - logiczne OR, przynajmniej jeden z warunków musi być spełniony;
  • NIE - negacja logiczna, zwraca TRUE, jeśli warunek jest fałszywy;
  • XOR jest logicznym wyjątkiem. W wyrażeniu E1 XOR, E2 zwraca TRUE, jeśli tylko E1 = TRUE lub tylko E2 = TRUE w przeciwnym razie FALSE;
  • EQV - równoważność dwóch wyrażeń, zwraca TRUE jeśli mają taką samą wartość;
  • IMP - implikacja, zwraca FALSE jeśli E1 = TRUE i E2 = FALSE, w przeciwnym razie TRUE.

Należy pamiętać o AND, OR, NOT, inne operatory logiczne są rzadko używane.

Prawie każdy program VBA używa operatorów konkatenacji. W VBA są dwa z nich - + lub &. Zaleca się, aby zawsze używać & ponieważ:

  • przy użyciu & wykonywana jest automatyczna konwersja wartości numerycznych na ciągi znaków - nie ma niebezpieczeństwa popełnienia błędu;
  • w przypadku korzystania z operatora + dodanie wartości ciągu do wartości typu Null daje wartość Null.

MsgBox "Wiadomość do użytkownika" & vUserName

Kolejność stosowania operatorów można kontrolować za pomocą nawiasów.

Instrukcje językowe (lub operatorzy) to jednostki programowe, które wykonują jakąś akcję lub opisują dane.

Instrukcja składa się z co najmniej jednego słowa kluczowego i opcjonalnie parametrów. Kilka instrukcji znajdujących się w tej samej linii programu jest oddzielonych od siebie dwukropkiem. Jeśli instrukcja jest zbyt długa, możesz podzielić ją na kilka wierszy, używając znaku podkreślenia _ do zawijania.

O P redaktorśrodki

Instrukcja przypisania służy do przypisania nowej wartości do zmiennej podczas wykonywania programu. Znak przydziału „=”.

Na przykład, operator:

x = Sqr(5 + Tan(1.8) ^ 2)

przypisuje wartość wyrażenia do x. W wyniku oceny wyrażenia zapisanego po prawej stronie otrzymujemy liczbę rzeczywistą. Ale wartość, która zostanie przypisana do zmiennej x, zależy od tego, jak został zadeklarowany typ tej zmiennej. Tak więc, jeśli zmienna x jest typu Single, zostanie jej przypisany wynik 4.834464, jeśli Double, to 4.83446368725481, a jeśli Integer, to 5.

Typ danych zmiennej x musi być zgodny z typem danych tego wyrażenia. Oprócz niejawnej konwersji z jednego typu na inny podczas przypisywania, język Visual Basic zapewnia możliwość konwersji typów przy użyciu funkcji. Na przykład funkcja cdbl konwertuje dane do podwójnego typu, Cint– wpisać Integer, cng– wpisać Long, csng– do typu Single, CStr- wpisać String itp.

Funkcje CInt i Clng zaokrąglają wynik. W takim przypadku, jeśli część ułamkowa liczby wynosi 0,5, zaokrąglanie jest wykonywane do najbliższej liczby parzystej.

operator przypisania pozwala nie tylko przypisać wartość do zmiennej, ale także ustawić wartości właściwości obiektów VBA. Na przykład operator

Wiersze("1:1"). Czcionka. Pogrubienie=Prawda

pogrubia pierwszy wiersz arkusza.

PRZERWANIE LINII

Połączenie<Пробел> + <Знак подчеркивания>na końcu linii zapewnia, że ​​następna linia jest kontynuacją poprzedniej. Czyniąc to, musisz pamiętać, że:

§ Nie zawijaj stałych łańcuchowych

§ Dozwolonych jest nie więcej niż siedem kontynuacji tej samej linii

§ Sam ciąg nie może zawierać więcej niż 1024 znaków

Przykład.

Nieprawidłowy transfer Prawidłowy transfer

String = "Visual Basic for _ String = "Visual Basic" _

Aplikacje” i „dla aplikacji”

UWAGI

Tekst następujący po symbolu (") w programie do końca linii jest ignorowany przez kompilator i jest komentarzem. Komentarze służą do dodawania wyjaśnień i opisów do programu. Komentarze są przydatne podczas debugowania programu: pozwalają możesz tymczasowo wyłączyć wiersze programu podczas debugowania.

Warunkowy operator

Operator warunkowy wykonuje określone instrukcje (operatory) w zależności od wartości wyrażenia warunku. Schemat blokowy sprawdzania stanu wygląda tak:

Ryż. 1. Rozgałęzienie może być niepełne (taka struktura nazywana jest również obejściem).

Ryż. 2. Operator warunkowy ma dwie formy składni: śródliniową i blokową.

Forma małych liter

Jeśli stan Następnie [ operatorzy_jeśli_prawda]

Algorytm przedstawiony na ryc. 1, małymi literami zostanie zapisane jako

Jeśli stan Następnie operatorzy_jeśli_prawda W przeciwnym razie operatorzy_jeśli_fałsz

Rysunek 2 odpowiada wpisowi

Jeśli stan Następnie operatorzy_jeśli_prawda

Rysunek 3 odpowiada wpisowi

Jeśli stan Potem jeszcze operatorzy_jeśli_fałsz

kształt bloku

Jeśli warunek-1 Następnie

[operatory_jeśli warunek–1_prawda]

[Statements_if_all_conditions_false]]

Warunki wymienione w częściach If i ElseIf są wyrażeniami relacyjnymi lub wyrażenia logiczne. Gdy spełniony jest jeden z warunków, instrukcje następujące po dopasowanym słowie kluczowym Then są wykonywane, a pozostałe instrukcje są ignorowane (tj. nie są wykonywane żadne dalsze kontrole, a kontrola jest przekazywana do instrukcji następującej po End If). Jeśli żaden z warunków logicznych nie jest spełniony, wtedy Statements_if_all_previous_conditions_false lub, jeśli ta część zostanie pominięta, sterowanie jest przekazywane do wiersza programu następującego po instrukcji warunkowej.

Blokowa forma instrukcji If jest preferowana, jeśli:

Gdy warunek jest spełniony lub nie jest spełniony, wykonywanych jest kilka instrukcji (w tym przypadku można również użyć małej litery, ale linia będzie zbyt długa, a program mniej zrozumiały);

Kilka warunków jest sprawdzanych sekwencyjnie, a gdy spełniony jest kolejny warunek, nie zaleca się sprawdzania kolejnych warunków (w tym celu słowo kluczowe Elseif).

Przykład

Firma udziela rabatów odbiorcom hurtowym.

Na podstawie znanej wielkości zamówienia konieczne jest określenie jego kosztu.

Do obliczenia kosztu zamówienia korzystamy z funkcji:

Koszt zamówienia funkcji publicznej (ilość tak długa) jak dwukrotnie

Jeśli ilość<= 999 Then

Koszt_zamówienia = Ilość * 5

Inna ilość<= 1999 Then

Koszt_zamówienia = Ilość * 4,8

Koszt_zamówienia = Ilość * 4,75

W takim przypadku możesz również użyć małej formy instrukcji IF:

Funkcja publiczna Order_Cost1 (Ilość tak długa) podwójna

Jeśli ilość<= 999 Then Стоимость_заказа1 = Количество * 5

Jeśli liczba>= 1000 i liczba<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

Jeśli ilość >= 2000, to koszt zamówienia1 = ilość * 4,75

Jeśli nie weźmiemy pod uwagę niedociągnięć polegających na tym, że wiersze są długie, a dla dowolnej ilości zamówień wszystkie kontrole są wykonywane sekwencyjnie (pierwsza procedura działa szybciej dla małych ilości zamówień), to program jest napisany poprawnie i być może nawet bardziej wizualnie.

Jednak przykłady można podać, gdy jeden z warunków jest spełniony (lub nie jest spełniony), pozostałych po prostu nie można sprawdzić.

Na przykład, niektóre instrukcje muszą zostać wykonane, gdy warunki są spełnione łącznie: kontrolki używają operatora

Jeśli x>0 i y

wtedy z ujemną wartością x, wystąpi błąd podczas wywoływania funkcji sqr (pod pierwiastkiem jest liczba ujemna).

Tego błędu można uniknąć, korzystając z konstrukcji

Jeśli x > 0 To jeśli y< Sqr(x) Then

W ostatniej notacji, jeśli występuje słowo kluczowe Else, to odnosi się ono do ostatniej instrukcji If.

Wybierz oświadczenie

Wybierz przypadek wyrażenie

[instrukcje_w przeciwnym razie]]

Parametrem expression jest dowolne wyrażenie liczbowe lub łańcuchowe. Zamiast oceniać warunek logiczny, wartość wyrażenia porównywana jest z każdą z wartości określonych przez parametr lista_wyrażeń-n.

Wartości porównawcze zawarte w lista-wyrażeń-n, można podać w postaci:

– wartości;

– zakres wartości w formularzu wartość początkowa Do wartość_końcowa;

– wyrażenia porównawcze w postaci Is wartość operatora porównania;

- lista dowolnego z wymienionych typów wyrażeń (separator - przecinek).

Instrukcja może mieć dowolną liczbę bloków Case. Jeśli żaden z warunków nie jest spełniony, wykonywane są instrukcje bloku Case Else.

Na przykład, jeśli warunek ma wynik powyżej trzech, wówczas warunek ten można zapisać: Przypadek 4, 5 lub Przypadek Is >3 lub Przypadek Is >= 4 lub Przypadek 4 do 5.

Notatka. Słowo kluczowe Is można pominąć, zostanie ono dodane samo.

Przykład

Omówiony powyżej przykład obniżonej ceny można rozwiązać za pomocą konstrukcji Select Case w następujący sposób:

Funkcja publiczna Order_Cost2 (Ilość tak długa) podwójna

Wybierz ilość skrzynek

Koszt_zamówienia2 = Ilość * 5

Przypadek 1000 do 1999

Order_cost2 = Ilość * 4,8

Przypadek jest >= 2000

Order_Cost2 = Ilość * 4,75

Program VBA to sekwencja instrukcji.

W programowaniu należy przestrzegać kilku konwencji. Możesz więc umieścić kilka instrukcji w jednym wierszu. Między wyrażeniami w tym samym wierszu umieszczany jest dwukropek.

Każdy wiersz można podzielić na dwie części, umieszczając znaki „Spacja” + „Podkreślenie” (_) na końcu pierwszego, w takim przypadku drugi wiersz będzie uważany za kontynuację pierwszego.

Komentarze służą do tego, aby program był łatwy do odczytania. Komentarze w VBA można wprowadzać na dwa sposoby: za pomocą apostrofu (‘), który można umieścić w dowolnym miejscu w wierszu, oraz za pomocą zastrzeżonego słowa Rem zamiast apostrofu.

1. Operator przyciemnienia służy do deklarowania typów zmiennych.

Dim A jako liczba całkowita — zmienna A jest zadeklarowana jako liczba całkowita, tj. będzie przechowywać tylko wartości całkowite .

Wym. D jako data — zmienna D jest zadeklarowana do przechowywania dat.

· Dim Nazwisko, Imię As String – zmienne są deklarowane. Nazwisko i Imię, przeznaczone do przechowywania tekstu.

Dim B(12) jako liczba całkowita - deklarowana jest tablica jednowymiarowa (wektor), składająca się z 12 liczb całkowitych, a domyślnie pierwszym elementem tablicy będzie B(0), a ostatnim B(12).

Dim B(3,3) Jako pojedynczy – deklarowana jest dwuwymiarowa tablica (macierz) 3x3, składająca się z liczb rzeczywistych.

Jeśli typ zmiennej nie jest określony, domyślnie używany jest typ Variant. Jednak określenie konkretnego typu zmiennej sprawia, że ​​program jest bardziej niezawodny i przyspiesza jego pracę, ponieważ VBA nie musi tracić czasu na rozpoznawanie niezadeklarowanej zmiennej za każdym razem, gdy uzyskuje się do niej dostęp.

Jeżeli wielkość tablicy M nie jest z góry znana i jest ustalana w trakcie programu, to przy opisie tablicy nie wskazuje się liczby elementów, a tablicę definiuje się następująco:

Dim M() jako liczba całkowita

Po określeniu liczby elementów tablicy, na przykład N, należy wpisać operator

2. operator przypisania służy do przypisywania wartości do zmiennej.

Składnia:

Zmienna (lub właściwość obiektu) = wyrażenie.

a=5 - zmienna A do przypisania wartości 5 ;

b="Menedżer" - zmienna b przydzielać co oznacza "menedżer";

Adres=Arkusze("Organizacje").Komórki(2,2) – przypisz zawartość komórki B2, która znajduje się w arkuszu Organizacja w bieżącym skoroszycie, do zmiennej Adres;

LastName=UserForm1.TextBox1.Text - zmienny Nazwisko do przypisania zawartości pola TextBox1 formularza użytkownika UserForm1.

3. Z/Zakończ z oświadczeniem oszczędza programistę przed dużą liczbą powtórzeń nazwy tego samego obiektu.

Składnia:

Z przedmiotem

operator1

operator2



operatorN

Na przykład zamiast ciągu zdań

UserForm1.TextBox1.Text = Data

UserForm1.TextBox2.Text = " "

UserForm1.ComboBox1.Text = " "

można tak napisać

Pole tekstowe1.Tekst = Data

. Pole tekstowe2.Tekst = " "

. ComboBox1.Text = " "

REM Na arkuszu Arkusz1 w kolumnie A, zaczynając od drugiego wiersza, rejestrowane są „stawki pracowników”. Wypełnij pole kombi ComboBox1 w UserForm1

‘Pierwszy wiersz programu znajduje się na arkuszu Arkusz1 w kolumnie A ‘liczona jest ilość wypełnionych komórek, wynik ‘przypisywany do zmiennej N

N=Application.CountA(Sheets("Arkusz1").Range("A:A")).

D=”A2:A”&Cint(N)

Arkusze("Arkusz1").Range(D).Name="Stawki"

Pole tekstowe1.Tekst = Data

. Pole tekstowe2.Tekst = " "

. ComboBox1.Text = " "

. ComboBox1.Rowsource = "Ceny"

4. Warunkowa instrukcja If/Then/Else- umożliwia sprawdzenie określonego warunku i, w zależności od wyników sprawdzenia, wykonanie jednej lub drugiej czynności

Składnia:

Jeśli stan Następnie operatorzy1 [ W przeciwnym razie operatorzy2]

Jeśli warunek jest spełniony, wykonywane są instrukcje1, w przeciwnym razie wykonywane są instrukcje2.

Dozwolone jest również użycie złożonego operatora warunkowego, który jest zapisany jako blok:

Jeśli warunek1 Następnie

operatorzy1

W przeciwnym razie warunek2 Następnie

Podstawowe operatory języka VBA

Komentarze (0)

3.1. Zasady nagrywania operatora

Pisząc operatorów, musisz przestrzegać następujących zasad:

Każda nowa instrukcja jest napisana w nowej linii.

Aby napisać wiele instrukcji w jednym wierszu, oddziel je dwukropkiem (:).

Jeśli instrukcja nie mieści się w jednym wierszu, musisz umieścić spację i podkreślenie (_) na końcu wiersza, a następnie kontynuować część, która nie zmieściła się w następnym wierszu.

3.2. operator przypisania

Operator przypisania jest używany, gdy zmienna musi mieć przypisaną nową wartość. Ma następującą składnię:

VARIABLE_NAME= WYRAŻENIE

Najpierw oceniane jest wyrażenie po prawej stronie, a następnie wynik przypisywany jest do zmiennej po lewej stronie.

Na przykład. Napisz następujące wyrażenie matematyczne, używając operatora przypisania:

W VBA wyrażenie to można zapisać jako następującą instrukcję:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. Oświadczenia we/wy

3 .3.1. Operator i funkcja MsgBox

Operator MsgBox wyświetla informacje w oknie dialogowym i ustawia tryb oczekiwania na kliknięcie przycisku użytkownika.

Ma następującą składnię:

MsgBox Wiadomość[,Przyciski][, Tytuł]

Argumenty:

Wiadomość - obowiązkowy argument określający wyświetlany komunikat informacyjny w oknie. Może składać się z kilku wierszy tekstu połączonych znakiem & . Użycie w tym argumencie Chr(13) powoduje przerwanie wiersza podczas wyprowadzania informacji.

guziki - wartość tego argumentu określa kategorie przycisków, które pojawiają się w oknie. Wartość argumentu button określa również, czy w oknie pojawia się ikona. Jeśli nie określisz, które przyciski mają być wyświetlane w oknie komunikatu, używana jest domyślna wartość odpowiadająca przyciskowi OK. W tabeli. 3.1 pokazuje możliwe kombinacje przycisków i ikon w oknie wiadomości.

nagłówek - ustawia tytuł okna.

Funkcjonować MsgBox zwraca liczbę całkowitą wskazującą, który przycisk został kliknięty w oknie dialogowym.

Tabela 3.1. Prawidłowe wartości zmiennych przycisków

Wyświetlacz

Argument

Przycisk OK

Przyciski OK i Anuluj

Przyciski tak i nie

Przyciski Tak, Nie i Anuluj

Przyciski Przerwij, Ponów i Ignoruj

VbAbortRetryIgnoruj

Przyciski Ponów i Anuluj.

znak informacyjny

Znak zapytania

Wykrzyknik

Na przykład. Wyświetl komunikat o aktualnej dacie.

MsgBox "Dzisiaj w kalendarzu" & Data , "Uwaga"

W rezultacie zostanie wyświetlone następujące okno (rys.3.1).

Po kliknięciu przycisku OK okno komunikatu zostanie zamknięte, a wykonywanie programu zostanie wznowione od instrukcji bezpośrednio po wywołaniu MsgBox.

3.3.2. Funkcjonować Pole wprowadzania

Funkcjonować Pole wprowadzania wykonuje wprowadzanie wartości zmiennych za pomocą okna wprowadzania i ma następującą składnię:

Nazwa_zmiennej = Pole wprowadzania(Wiadomość[, Tytuł] )

Argumenty:

Wiadomość jest wymaganym argumentem. Określa komunikat informacyjny w oknie, zwykle wyjaśniający znaczenie wartości wejściowej

nagłówek - ustawia tytuł okna.

Na przykład, Wprowadź wartość zmiennej N z klawiatury, podając domyślną wartość 10.

Możesz do tego użyć następującego operatora:

N = InputBox("Wprowadź N", "Dane wejściowe",10)

W efekcie wyświetli się następujące okno do wpisania wartości zmiennej N (rys.3.2).

Jeżeli domyślna wartość jest odpowiednia dla użytkownika, to po kliknięciu przycisku OK okno wejściowe zostanie zamknięte, zmiennej N zostanie przypisana wartość 10, a wykonywanie programu zostanie wznowione od instrukcji bezpośrednio po wywołaniu. Pole wprowadzania.

Jeśli domyślna wartość nie odpowiada użytkownikowi, przed kliknięciem przycisku OK należy wprowadzić żądaną wartość zmiennej N.

3 .cztery. Warunkowe oświadczenie IF

Do implementacji rozgałęzionego procesu obliczeniowego w VBA używany jest operator Jeśli…Wtedy…W przeciwnym razie, co jest najprostszą formą sprawdzania stanu. Ma następującą składnię:

JeśliSTANNastępnieOPERATOR_1milseOPERATOR_2

OPERATOR_1 jest wykonywany, jeśli STAN prawda, inaczej wykonane OPERATOR_2. W tym przypadku instrukcja If…Then…Else jest zapisana w jednym wierszu.

STAN jest wyrażeniem logicznym. Wynik wyrażenia jest zawsze typu logicznego. Wyrażenie może być proste lub złożone. Pisząc proste warunki można wykorzystać wszystkie możliwe operacje relacyjne wskazane w Tabeli 1. 3.2.

Stół3 .2. Relacje logiczne

Operacja

Nazwa

Wyrażenie

Wynik

Prawda, jeśli A jest równe B

Prawda, jeśli A nie jest równe B

Prawda, jeśli A jest większe niż B

Prawda, jeśli A jest mniejsze niż B

Więcej lub równe

Prawda, jeśli A jest większe lub równe B

Mniejsze lub równe

Prawda, jeśli A jest mniejsze lub równe B

Z prostych warunków tworzy się złożone warunki, stosując operacje logiczne i nawiasy. Lista operacji logicznych znajduje się w tabeli. 3.3.

Stół3 .3. Operacje logiczne

Nazwa

Wyrażenie

Wynik

Boole'a
negacja

logiczne AND

Logiczne OR

W instrukcji warunkowej można użyć bloku instrukcji zamiast dowolnej instrukcji. W tym przypadku operator warunkowy wygląda tak:

JeśliSTANNastępnie

OPERATOR_BLOCK_1

OPERATOR_BLOCK_2

Koniec If

W instrukcji warunkowej można przetestować wiele warunków. W tym przypadku operator warunkowy wygląda tak:

JeśliWARUNEK_1Następnie

OPERATOR_BLOCK_1

W przeciwnym razieWARUNEK_2Następnie

OPERATOR_BLOCK_2

W przeciwnym razie

koniecJeśli

Przykład 1. Napisz część programu dla algorytmu z ryc. 3.3.

Przykład 2 Napisz część programu dla algorytmu z ryc. 3.4.

3.5. Wybierz oświadczenie dotyczące sprawy

Instrukcja Select Case jest wygodna w użyciu, gdy w zależności od wartości jakiegoś wyrażenia, które ma skończony zestaw poprawnych wartości, musisz wykonać różne czynności. Dotyczy to również instrukcji warunkowych, ale ma inną formę:

Wybierz przypadekEXPRESSION_CHECKED

walizkaVALUES_1

OPERATORS_1

walizkaWARTOŚCI_ 2

OPERATORZY_ 2

. . .

walizkaVALUES_N

OPERATORZY_N

[ walizkaW przeciwnym razie

INACZEJ_ OPERATORZY]

Koniec Wybierz

EXPRESSION_CHECKED może być dowolnego typu skalarnego z wyjątkiem rzeczywistego. WARTOŚCI składają się z dowolnej liczby wartości lub zakresów, oddzielonych od siebie przecinkami.

Typ WARTOŚCI musi pasować do typu EXPRESSION_CHECKED.

Najpierw obliczone EXPRESSION_CHECKED. Jeśli jego wartość pasuje do jednej z wartości VALUES_I, następnie OPERATORS_I Koniec Wybierz. Jeśli jego wartość nie pasuje do żadnej z wartości VALUES_I, następnie ELSE_OPERATORS i kontrola jest przekazywana operatorowi stojącemu po Koniec Wybierz

Na przykład. Napisz część programu dla algorytmu z ryc. 3.5, która określa wartość zmiennej S w zależności od wartości zmiennej n.

3.6. Instrukcje pętli

Aby zaimplementować cykliczny proces obliczeniowy, tj. Wielokrotne wykonanie jednego lub więcej operatorów, używany jest operator cyklu W następnym, który ma następującą składnię:

DoLICZNIK=WARTOŚĆ POCZĄTKOWAToEND_VALUEkrokKROK

OPERATOR_BLOCK

OPERATOR_BLOCK

NastępnyLICZNIK

Dla…Następna pętla iteruje przez wartości zmiennej LICZNIK, który jest parametrem pętli, od wartości początkowej do końcowej z określonym krokiem zmiany. Gwarantuje to, że blok instrukcji ciała pętli jest wykonywany z każdą nową wartością licznika. Jeśli krokKROK nie ma go w konstrukcji, to domyślnie przyjmuje się, że krok jest równy 1. Według operatora Wyjdź dla możesz wcześniej wyjść z instrukcji loop LICZNIK osiąga ostatnią wartość.*

Aby iterować po obiektach z grupy podobnych obiektów, takich jak komórki z zakresu lub elementy tablicy, wygodnie jest użyć operatora pętli Do…Każdy…Dalej.

Dla każdegoElementWGrupa

BLOK_ OPERATORZY

OPERATOR_BLOCK

NastępnyElement

W VBA inne instrukcje pętli służą do organizowania pętli z nieznaną liczbą powtórzeń z wyprzedzeniem:

pętle z warunkiem wstępnym - RobićPodczas gdypętla,

RobićAż dopętla;

pętle z warunkiem końcowym - RobićpętlaPodczas gdy,

RobićpętlaAż do.

Poniżej znajduje się składnia tych instrukcji pętli:

" Pętla z warunkiem wstępnymRobić Podczas gdy pętla

Czy podczasSTAN

OPERATOR_BLOCK

OPERATOR_BLOCK

" Pętla z warunkiem wstępnymRobić Aż do pętla

RobićAż doSTAN

OPERATOR_BLOCK

OPERATOR_BLOCK

Pętla z warunkiem końcowymRobić pętla podczas

BLOK_ OPERATORZY

OPERATOR_BLOCK

pętla podczasSTAN

Pętla z warunkiem końcowymRobić Powtarzaj dopóki

BLOK_ OPERATORZY

OPERATOR_BLOCK

Powtarzaj dopókiSTAN

Operator RobićWhie…Pętla zapewnia, że ​​blok instrukcji jest powtarzany wiele razy, aż STAN jest obserwowany, a operator



Inne wiadomości

Wszystkie operatory arytmetyczne, porównania, logiczne i konkatenacji są tutaj szczegółowo opisane. Próbowałem zebrać wszystko, co można wiedzieć o tych operatorach. Każdy operator jest wyposażony w przykład. Opisy są tłumaczone przeze mnie ze standardowej Pomocy „a VB5.

Operatory arytmetyczne

operator ^ (potęgowanie)

Ten operator służy do podnoszenia liczby do potęgi.

Składnia:

wynik = numer^stopień

Opcje:

wynik
numer
stopień- wymagany; dowolne wyrażenie liczbowe

Uwagi:

numer może być ujemna tylko wtedy, gdy stopień jest liczbą całkowitą. Jeśli w tym samym wyrażeniu użyto wielu operatorów ^, ocena odbywa się od lewej do prawej. Zwykle typem wyniku jest Double. Jeśli jednak lub stopień, lub numer- Wyrażenie zerowe, więc wynik Null też.

Przykład:

Ciemny MojaWartość
MojaWartość = 2^2” zwróci 4.
MojaWartość = 2^3^3" wróci 512 (2^3=8, 8^3=512)
MojaWartość=(-5)^3" wróci -125.

Porady:

Jeśli chcesz podnieść liczbę do stałej potęgi, lepiej użyć kilku operatorów - mnożenia, niż jednego - potęgowania, oceń sam, cykl miliona przebiegów z obliczeniem przekazanego wyrażenia:

test1 = 2^8" 893ms
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130 ms!

operator * (pomnóż)

Służy do mnożenia dwóch liczb.

Składnia:

wynik = numer 1* numer 2

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
numer 1- koniecznie; dowolne wyrażenie liczbowe
numer 2- koniecznie; dowolne wyrażenie liczbowe

Uwagi:

Typ danych wyniku jest zwykle taki sam, jak najbardziej precyzyjny typ z dwóch liczb. Kolejność dokładności, od największej do najmniejszej, to Byte, Integer, Long, Single, Currency, Double, Decimal. To prawda, są wyjątki:

  • Jeśli pomnożymy Single i Long, to otrzymamy Double
  • Jeśli typ danych wynik- Long Single lub Date, który nie zawiera wyniku samego wyrażenia, a następnie wynik jest konwertowany na wariant zawierający Double.

Jeśli numer 1 lub numer 2

Kolejność precyzji w mnożeniu jest inna niż w przypadku dodawania i odejmowania.

Przykład:

Ciemny MojaWartość
MojaWartość = 2 * 2 " zwróci 4.
MojaWartość = 459.35 * MojaWartość "(!LANG: Zwróci 495,35 * 4

operator / (oddział)

Służy do dzielenia dwóch liczb i uzyskania wyniku zmiennoprzecinkowego.

Składnia:

wynik = numer 1 / numer 2

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
numer 1- koniecznie; dowolne wyrażenie liczbowe
numer 2- koniecznie; dowolne wyrażenie liczbowe

Uwagi:

Wynik zwykle typu Double. To prawda, są wyjątki:

  • Jeśli oba wyrażenia są typu Byte, Integer, Single, wynikiem jest Single. Jeśli jednak wymiary wyrażenia nie mieszczą się w zakresie Single, pojawia się błąd.
  • Jeśli oba wyrażenia są typu Variant zawierające Byte, Integer lub Single, wynikiem jest Single Variant. Jeśli jednak wymiary wyrażenia nie mieszczą się w zakresie Single, to Double Variant.
  • Jeśli jedna z liczb jest typu Decimal, wynikiem jest Decimal.

Jeśli numer 1 lub numer 2- Null, jest interpretowane po prostu jako normalne 0.

Przykłady:

Ciemny MojaWartość
MojaWartość = 10 / 4" !} wróci 2.5.
MojaWartość = 10/3" wróci 3.333333.

operator \ (dzielenie liczb całkowitych)

Służy do dzielenia dwóch liczb i uzyskania wyniku całkowitego.

Składnia:

wynik = numer 1 \ numer 2

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
numer 1- koniecznie; dowolne wyrażenie liczbowe
numer 2- koniecznie; dowolne wyrażenie liczbowe

Uwagi:

Przed takim podziałem wyrażenia są zaokrąglane do wyrażeń Byte, Integer lub Long. Zazwyczaj typem danych wyniku jest Byte, Byte wariant, Integer, Integer wariant, Long lub Long wariant. Każda część ułamkowa jest obcinana.

Jeśli jednak którekolwiek z wyrażeń ma wartość Null, wynikiem jest Null. Każde wyrażenie zawierające Empty jest interpretowane jako 0.

Przykłady:

Ciemny MojaWartość
MojaWartość=11\4" wróci 2.
MojaWartość=9\3" wróci 3.
MojaWartość=100\3" wróci 33.

Operator modu (pozostałość dzielenia)

Służy do dzielenia dwóch liczb i uzyskania pozostałej części ich dzielenia.

Składnia:

wynik = numer 1 Mod numer 2

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
numer 1- koniecznie; dowolne wyrażenie liczbowe
numer 2- koniecznie; dowolne wyrażenie liczbowe

Uwagi:

Podczas dzielenia liczby z kropką są zaokrąglane. Na przykład wynik następującego wyrażenia to 5:

A=19 Mod 6.7

Co tu się dzieje? Najpierw liczba 6,7 ​​jest zaokrąglana do 7. Następnie następuje dzielenie, otrzymujemy 2,7 ​​.... Pozostała część z dzielenia = 5. (2 * 7 = 14, 19 - 14 = 5).

Wynik jest zwykle typu Byte, Byte wariant, Integer, Integer wariant, Long lub Variant zawierający Long.

Jeśli którekolwiek z wyrażeń ma wartość Null, wynikiem jest Null. Każde wyrażenie zawierające Empty jest interpretowane jako 0.

Przykłady:

Ciemny MójWynik
Mój wynik = 10 Mod 5" wróci 0.
Mój wynik = 10 Mod 3" wróci 1.
Mój wynik = 12 Mod 4.3" wróci 0.
Mój wynik = 12.6 Mod 5" wróci 3.

operator + (dodatek)

Służy do dodawania dwóch liczb.

Składnia:

wynik = wyrażenie1+wyrażenie2

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
wyrażenie1
wyrażenie2- koniecznie; dowolne wyrażenie

Uwagi:

Kiedy używasz operatora +, nie możesz określić, co się dzieje, dodawania lub łączenia ciągów. W przypadku konkatenacji użyj operatora &, aby uniknąć nieporozumień i uczynić kod bardziej czytelnym.

Jeśli jedno z wyrażeń nie jest Wariantem, obowiązują następujące zasady:

  • Jeśli oba wyrażenia są typu liczbowego (Byte, Boolean, Integer, Long, Single, Double, Date, Currency lub Decimal), zostaną dodane.
  • Jeśli oba wyrażenia łańcuchowe są konkatenacją.
  • Jeśli jedno z wyrażeń ma typ liczbowy, a drugie ma dowolną wartość Variant, w tym wartość Null, następuje dodawanie.
  • Jeśli jedno z wyrażeń jest ciągiem, a drugie jest dowolną wartością Variant, następuje konkatenacja.
  • Jeśli jedno z wyrażeń zawiera Empty, zwracane jest drugie niezmodyfikowane wyrażenie.
  • Jeśli jedno z wyrażeń jest typu liczbowego, a drugie jest ciągiem, wystąpi błąd niezgodności typu.
  • Jeśli jakiekolwiek wyrażenie ma wartość Null, wynikiem jest również Null.

Jeśli oba wyrażenia są Wariantem, obowiązują następujące zasady:

  • Jeśli oba wyrażenia są liczbami, sumują się.
  • Jeśli oba wyrażenia są łańcuchami, są one łączone.
  • Jeśli jedno z wyrażeń jest liczbą, a drugie ciągiem, następuje dodawanie.

W przypadku normalnego dodawania typ danych wyniku jest zwykle taki sam, jak najbardziej dokładny typ dwóch liczb. Kolejność dokładności to Byte, Integer, Long, Single, Double, Currency i Decimal. Istnieją wyjątki:

  • Jeśli doda się Single i Long, wynikiem będzie Double
  • Jeśli wyrażenie typu Date zostanie dodane z dowolnym innym wyrażeniem, wynikiem będzie Date.

Jeśli jedno lub oba wyrażenia mają wartość Null, wynikiem jest również Null. Jeśli oba wyrażenia zawierają Empty, wynikiem jest Integer. Jeśli jest tylko jedno, jako wynik zwracane jest drugie niezmodyfikowane wyrażenie.

Przykłady:

Ciemny MójNumer, Var1, Var2
MójNumer = 2 + 2" wróci 4.
MójNumer = 4257,04 + 98112" wróci 102369.04.

zmienna1="34"
War2 = 6 " Zainicjuj mieszane zmienne
MójNumer = Var1 + Var2" wróci 40.

zmienna1="34"
War2="6" " Zainicjuj zmienne za pomocą ciągów
MójNumer = Var1 + Var2" wróci„346” (stało się
„konkatenacja, a nie dodawanie!”).

Porady:

Operator dodawania (+) może służyć do dodawania dat, tj. zmienne typu Data:

Dim d jako data
d = DateSerial (2002, 8, 15) " inicjalizacja daty 15.08.2002
d=d+15 " teraz d zawiera datę 30.08.2002
"tzn. dodaliśmy 15 dni

operator - (odejmowanie, zmiana znaku)

Służy do znajdowania różnicy między dwiema liczbami lub też do zmiany znaku wyrażenia.

Składnia:

wynik = wyrażenie1- wyrażenie2

-wyrażenie

Opcje:

wynik- wymagany; dowolna zmienna liczbowa
wyrażenie- koniecznie; dowolne wyrażenie
wyrażenie1- koniecznie; dowolne wyrażenie
wyrażenie2- koniecznie; dowolne wyrażenie

Uwagi:

W pierwszej składni do znalezienia różnicy między dwiema liczbami potrzebny jest operator „-”. W drugiej składni „-” służy do zmiany znaku y wyrażenia.

Typ danych wyniku jest zwykle taki sam, jak najbardziej precyzyjny typ z dwóch liczb. Kolejność dokładności to Byte, Integer, Long, Single, Double, Currency i Decimal. Istnieją wyjątki:

  • Jeśli odejmowanie obejmuje typy Single i Long, wynikiem jest Double
  • Jeśli odejmowanie używa wyrażenia typu Date,
    wtedy wynikiem jest Data.
  • Odjęcie dwóch dat daje w wyniku Double.

Jeśli jedno lub oba wyrażenia mają wartość Null, wynikiem jest również Null. Jeśli jedno z wyrażeń jest puste, jest interpretowane jako 0.

Kolejność dodawania i odejmowania jest inna niż w mnożeniu.

Przykłady:

Ciemny MójWynik
Mój wynik = 4 - 2" wróci 2.
MójWynik = 459,35 - 334,90" wróci 124.45.

Porady:

Podobnie jak operator dodawania, operator odejmowania może służyć do obliczania różnicy (w dniach) między dwiema datami:

przyciemnij d1 jako data
Dim d2 jako data
Dim inaczej jak długo
d1 = DataSeria (1983, 10, 14)
d2 = DateSerial (2002, 8, 15)
razn = d2 - d1 " różnica w dniach (6880).

Operatory porównania

Używany do porównywania niektórych wyrażeń. Mają 3 składnie:

Składnia:

wynik = wyrażenie1 operator porównania wyrażenie2
wynik = obiekt1 Jest obiekt2
wynik = linia Tak jak próbka

Opcje:

wynik wymagany; dowolna zmienna liczbowa
wyrażenie koniecznie; dowolne wyrażenie
operator porównania wymagany; dowolny operator porównania
obiekt wymagany; nazwa dowolnego obiektu
linia wymagany; dowolne wyrażenie tekstowe.
próbka wymagany; dowolne wyrażenie tekstowe lub zakres liter i cyfr

Uwagi:

Poniższa tabela zawiera listę operatorów porównania i warunki, według których określany jest wynik wyrażenia (prawda lub fałsz).

Operator

prawda, jeśli

Fałsz, jeśli

Null, jeśli

< (меньше чем) wyrażenie1 <
wyrażenie2
wyrażenie1 >=
wyrażenie2

jeden
z
wyrażenie zawiera Null

<= (меньше или равно) wyrażenie1 <=
wyrażenie2
wyrażenie1 >
wyrażenie2
> (większe niż) wyrażenie1 >
wyrażenie2
wyrażenie1 <=
wyrażenie2
>= (większe lub równe) wyrażenie1 >=
wyrażenie2
wyrażenie1 <
wyrażenie2
= (równe) wyrażenie1 =
wyrażenie2
wyrażenie1 <>
wyrażenie2
<>(nie równe) wyrażenie1 <>
wyrażenie2
wyrażenie1 =
wyrażenie2

Operatory Is i Like pełnią określone funkcje, a ich tabela porównawcza różni się od pokazanej (przyjrzymy się im poniżej).

Gdy porównywane są dwa wyrażenia, nie zawsze można określić, czy porównanie będzie liczbami, czy łańcuchami. Poniżej przedstawiono sposób obliczania wyniku, jeśli oba wyrażenia mają typ inny niż Wariant:

  • Jeśli oba wyrażenia są liczbami (Byte, Boolean, Integer, Long, Single, Double, Date, Currency lub Decimal), nastąpi porównanie liczb.
  • Jeśli oba wyrażenia są ciągami, następuje porównanie ciągów. (mniejszy ciąg to ten, którego pierwsza i kolejne litery mają mniejszy kod ascii).
  • Jeśli jedno z wyrażeń jest liczbą, a drugie Wariantem, który można interpretować jako liczbę, to liczby są porównywane.
  • Jeśli jedno z wyrażeń jest liczbą, a drugie jest ciągiem Variant, którego nie można zinterpretować jako liczba, wystąpi błąd (niezgodność typu).
  • Jeśli jedno z wyrażeń jest ciągiem, a drugie jest dowolną wartością Variant (nawet Null), następuje porównanie ciągów.
  • Jeśli jedno z wyrażeń to Empty, a drugie to liczba, to następuje porównanie liczb, gdzie Empty jest traktowane jako 0.
  • Jeśli jedno z wyrażeń jest Empty, a drugie jest ciągiem, następuje porównanie ciągów, gdzie Empty jest traktowane jako pusty ciąg „”.

Jeśli zarówno pierwsze, jak i drugie wyrażenie są typu Variant, wówczas wyrażenia są porównywane zgodnie z typami danych, które zawiera Variant:

  • Jeśli oba wyrażenia Variant zawierają liczby, to liczby są porównywane.
  • Jeśli oba wyrażenia Variant zawierają ciągi, to ciągi są porównywane.
  • Jeśli jedno z wyrażeń Variant zawiera liczbę, a drugie ciąg, to wyrażenie liczbowe jest mniejsze niż wyrażenie ciągu.
  • Jeśli jedno z wyrażeń Variant jest Empty, a drugie jest liczbą, to Empty jest traktowane jako 0.
  • Jeśli jedno z wyrażeń Variant jest Empty, a drugie jest ciągiem, to Empty jest traktowane jako pusty ciąg „”.
  • Jeśli oba wyrażenia są puste, są traktowane jako równe.

Gdy zmienna Single jest porównywana z Double, Double jest zaokrąglana z dokładnością do Single.

Jeśli Waluta jest porównywana z Pojedynczym lub Podwójnym, wówczas Pojedynczy lub Podwójny jest konwertowany na Walutę. Podobnie, porównując Decimal z Single lub Double, Single lub Double jest konwertowane na Decimal. W przypadku waluty każda część ułamkowa mniejsza niż 0,0001 może zostać utracona. W przypadku Decimal ta wartość wynosi 1E-28, w przeciwnym razie może wystąpić błąd. Tak więc przy utracie części ułamkowej wyrażenia można interpretować jako równe, chociaż w rzeczywistości jedno z drugim będzie inne. (choć mały).

Przykłady:

Ciemny Mój wynik, Var1, Var2
MójWynik = (45< 35) " wróci Fałszywy.
MójWynik = (45 = 45)" wróci PRAWDA.
MójWynik = (4<> 3) " wróci PRAWDA.
MójWynik = („5” > „4”)” wróci PRAWDA.

Zm1="5": ​​​​Zm2=4 " w VB możesz użyć dwukropka,
", aby oddzielić operatorów.

MójWynik = (Zm.1 > Zm.2)" wróci PRAWDA.

Zm1=5: Zm2= Pusty
MójWynik = (Zm.1 > Zm.2)" wróci PRAWDA.

Zm1 = 0: Zm2 = Pusty
MójWynik = (Zm.1 = Zm.2)" wróci PRAWDA.

operator porównania Is

Ten operator służy do porównywania zmiennych obiektów.

Składnia tego operatora jest podana powyżej.

Uwagi:

Jeśli obiekt1 i obiekt1 odwołują się do tego samego obiektu, wynikiem jest True, jeśli nie, to False. Dwie zmienne mogą odnosić się do tego samego obiektu na więcej niż jeden sposób. W poniższym przykładzie A odnosi się do tego samego obiektu co B:

Ustaw A=B

Poniższy przykład sprawia, że ​​zmienne A i B odwołują się do tego samego obiektu C:

Ustaw A = C
UstawB=C

Przykłady:

Ciemny MójObiekt, TwójObiekt, TenObiekt, _
OtherObject, ThatObject, MyCheck

Ustaw TwójObiekt = MójObiekt " utwórz odniesienia do obiektów
Ustaw TenObiekt = MójObiekt
Ustaw ten obiekt = inny obiekt
MyCheck = YourObject Is ThisObject " zwróci True.
MyCheck = ThatObject Is ThisObject " zwróci False.
Zakładamy, że MyObject<>Inny obiekt
MyCheck = MyObject Is ThatObject ” Zwraca False.

Operator porównywania ciągów znaków - Like

Operator porównania ciągów Like służy do porównywania ciągów.

Składnia tego operatora została już omówiona powyżej.

Komentarz:

Ten operator może być używany do sprawdzania Strunowy na masce Wzór. To bardzo potężny operator, prawie analogiczny do wyrażenia regularne w Perlu.

Tak więc ten operator działa w następujący sposób. Jeśli ciąg pasuje do maski, wynikiem jest True. Jeśli nie - Fałsz. Jeśli jedno z wyrażeń ma wartość Null, wynikiem jest również Null.

Zachowanie operatora Like zależy od domyślnego typu porównania ciągów. (Opcja Porównaj oświadczenie).

Jeśli typ jest ustawiony na Binary (tj. Porównywanie binarne), łańcuchy są porównywane zgodnie z ich Kody ASCII(w różnych kodowaniach jest inaczej). Zwykle stosuje się następującą sekwencję:

A< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Jeśli typ jest ustawiony na Tekst (porównanie tekstu). Przy takim porównaniu kolejność różni się od poprzedniej, tutaj duże i małe litery są równe:

(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

Bardzo główna funkcja Operator Like to test sprawdzający, czy ciąg należy do maski. W masce można stosować następujące dodatki. symbolika:

Dowolny pojedynczy znak
* Zero lub więcej znaków
# Dowolna cyfra (0-9).
Dowolna pojedyncza postać na liście znaków
[!charlist] Dowolny pojedynczy znak, którego nie ma na liście znaków

Oto mała uwaga. W celu sprawdzenia własności napisu na masce zawierającej znak specjalny. symbole (tzn. sprawdź na przykład, czy w ciągu są symbole [,?,#,],*), to musisz zawrzeć od do nawiasy kwadratowe. Nie możesz tak po prostu umieścić osobnego nawiasu [ lub ].

Określając listę znaków, możesz użyć myślnika (-). Na przykład, aby określić sekwencję od A do Z, użyjesz maski. Wszystko w nawiasach nie może zawierać żadnych separatorów (spacji, przecinków itp.), w przeciwnym razie zostaną one również uwzględnione w sekwencji.

Istnieją inne ważne zasady sprawdzania poprawności masek:

  • (!) znak na początku listy znaków oznacza, że ​​należy szukać znaków, które nie znajdują się na tej liście. Jeśli chcesz znaleźć sam znak!, musisz umieścić nawiasy [!].
  • (–) służy do określenia zakresu znaków.
  • Określony zakres znaków musi być rosnącymi kodami ASCII. Tych. poprawna maska, ale nie.
  • Sekwencja jest interpretowana jako pusty ciąg „”.

Przykłady:

Ciemny Mój czek
MyCheck = "aBBBa" Like "a*a" " Zwraca True.
MyCheck = "F" Like "" " Zwraca True.
MyCheck = "F" Like "[!A-Z]" " Zwraca False.
MyCheck = "a2a" Like "a#a" " Zwraca True.
MyCheck = "aM5b" Like "a#[!c-e]" " Zwraca True.
MyCheck = "BAT123khg" Like "B?T*" " Zwraca True.
MyCheck = "CAT123khg" Like "B?T*" " Zwraca False.

mójCiąg = "312T-87GD-8922"

Jeśli mój ciąg Jak „###-##-####” Wtedy...

Operatory konkatenacji ciągów

W rzeczywistości możesz użyć tylko 2 operatorów, aby połączyć ciągi w Visual Basic. To jest i i +. Operator + jest opisany powyżej. Porozmawiajmy o operatorze &.

operator konkatenacji ciągów - &

Służy do łączenia dwóch wyrażeń.

Składnia:

wynik = wyrażenie1 & wyrażenie2

wynik wymagany; Dowolna zmienna typu String lub Variant
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Jeśli wyrażenie nie jest ciągiem, jest konwertowane na wariant ciągu. Typem danych wyniku jest String tylko wtedy, gdy oba wyrażenia są typu String. W przeciwnym razie wynikiem jest String Variant. Jeśli oba wyrażenia mają wartość Null, wynikiem jest również Null. Jeśli jednak tylko jedno z wyrażeń zawiera wartość null, to jest interpretowany jako pusty ciąg "". Pusty jest również interpretowany jako pusty ciąg „”.

Przykłady:

Ciemny MyStr
MyStr = "Witaj" i "Świat"
" wróci ciąg „Witaj świecie”.
MyStr = "Czek" & 123 & "Czek"
" Zwraca ciąg "Zweryfikuj 123 Zweryfikuj".

Operatory logiczne

To najciekawsza grupa operatorów. Podczas programowania musisz znać ich pracę i zastosowanie (i to nie tylko w Visual Basic).

W Visual Basic jest ich 6. Przyjrzyjmy się szczegółowo każdemu operatorowi.

I operator

Służy do wykonywania mnożenia logicznego na dwóch wyrażeniach.

Składnia:

wynik = wyrażenie1 I wyrażenie2

wynik
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator And:

Jeśli wyrażenie1 =

, a wyrażenie2 =

Ten wynik =

Prawdziwe Prawdziwe Prawdziwe
Prawdziwe Fałszywy Fałszywy
Prawdziwe Zero Zero
Fałszywy Prawdziwe Fałszywy
Fałszywy Fałszywy Fałszywy
Fałszywy Zero Fałszywy
Zero Prawdziwe Zero
Zero Fałszywy Fałszywy
Zero Zero Zero

Operator And służy również do testowania bitów liczby. W przypadku bitów operator And działa w ten sposób (patrz od lewej do prawej)

0 0 0
0 1 0
1 0 0
1 1 1

Przykłady:

Ciemny A, B, C, D, MyCheck
MyCheck=A>B i B>C" wróci PRAWDA.
MyCheck=B>A i B>C" wróci Fałszywy.
MyCheck=A>B i B>D" wróci Zero.
MyCheck = A i B" wróci8 (porównanie bitowe).

Przyjrzyjmy się bliżej ostatniemu przykładowi. Liczba 10 jest reprezentowana w bitach w następujący sposób (jako tetrada, czyli 4 bity):

A liczba 8 wygląda tak:

W wyniku działania operatora And zgodnie z powyższą tabelą otrzymamy:

Tych. 8. Dlaczego to zrobiliśmy? Zrobiliśmy to, aby sprawdzić, czy ustawiony jest czwarty bit liczby A? Po otrzymaniu B upewniliśmy się, że ten bit jest ustawiony.

Lub operator

Służy do logicznego dodawania dwóch wyrażeń.

Składnia:

wynik = wyrażenie1 Lub wyrażenie2

wynik wymagany; Dowolna zmienna numeryczna (w tym logiczna)
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator Or:

Jeśli wyrażenie1 =

, a wyrażenie2 =

Ten wynik =

Prawdziwe Prawdziwe Prawdziwe
Prawdziwe Fałszywy Prawdziwe
Prawdziwe Zero Prawdziwe
Fałszywy Prawdziwe Prawdziwe
Fałszywy Fałszywy Fałszywy
Fałszywy Zero Zero
Zero Prawdziwe Prawdziwe
Zero Fałszywy Zero
Zero Zero Zero

Operator Or służy do ustawiania pewnych bitów liczby. W przypadku bitów operator Or działa w następujący sposób (patrz od lewej do prawej)

0 0 0
0 1 1
1 0 1
1 1 1

Wynik jest pogrubiony.

Przykłady:

Ciemny A, B, C, D, MyCheck
MyCheck=A>B lub B>C" wróci PRAWDA.
MyCheck=B>A lub B>C" wróci PRAWDA.
MyCheck=A>B lub B>D" wróci PRAWDA.
MyCheck=B>D lub B>A" wróci Zero.
MyCheck = A lub 5" wróci 15:

Przyjrzyjmy się bliżej ostatniemu przykładowi. Liczba 10 jest reprezentowana w bitach w następujący sposób (jako tetrada, czyli 4 bity):

I numer 5:

W wyniku działania operatora Or zgodnie z powyższą tabelą otrzymujemy:

Tych. 15. Jak widać, operator Or jest bardzo łatwy i wygodny w użyciu nie tylko w wyrażeniach porównawczych, ale także do ustawiania pewnych bitów liczby.

Operator Xor

Służy do logicznej negacji dwóch wyrażeń.

Składnia:

wynik = wyrażenie1 Xor wyrażenie2

wynik wymagany; Dowolna zmienna numeryczna (w tym logiczna)
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator Xor:

Operator Xor służy do odwracania pewnych bitów liczby. W przypadku bitów operator Xor działa tak (patrz od lewej do prawej)

0 0 0
0 1 1
1 0 1
1 1 0

Wynik jest pogrubiony. Xor różni się od Or tylko tym, że gdy oba bity mają wartość 1, Xor daje 0. Operator Xor jest interesujący, ponieważ po dwukrotnym zastosowaniu generuje tę samą liczbę. Jest to często używane w kryptografii.

Przykłady:

Ciemny A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Xlub B>C" wróci Fałszywy.
MyCheck=B>A Xlub B>C" wróci PRAWDA.
MyCheck=B>A Xlub C>B" wróci Fałszywy.
MyCheck=B>D Xlub A>B" wróci Zero.
MyCheck=A X lub B" wróci 2

Ciekawym przykładem wykorzystania operatora Xor jest zamiana wartości dwóch zmiennych liczbowych:

Przyciemnij Tak długo , b Tak długo
a = 4
b = 7
a = a Xor b
b = a Xlub b
a = a Xor b

Teraz zmienna a zawiera wartość zmiennej b i odwrotnie.

nie operator

Służy do logicznego odwracania dwóch wyrażeń.

Składnia:

wynik= Nie wyrażenie

wynik wymagany; Dowolna zmienna numeryczna (w tym logiczna)
wyrażenie koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator Not:

Operator Not odwraca wszystkie bity. wyrażenia. W przypadku bitów operator Not działa tak (patrząc od lewej do prawej):

0 1
1 0

Wynik jest pogrubiony.

Przykłady:

Ciemny A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck = Nie(A>B)" wróci Fałszywy.
MyCheck = Nie(B>A)" wróci PRAWDA.
MyCheck = Nie(C>D)" wróci Zero.
MyCheck = Nie A" wróci-11 (wszystkie bity odwrócone)

Przyjrzyjmy się bliżej ostatniemu przykładowi. Liczba 10 jest reprezentowana jako bity w następujący sposób (jako bajt, tj. 8 bitów):

Po odwróceniu wszystkich bitów otrzymujemy:

A to jest -11.

Operator równania

Służy do wykonywania logicznej równoważności między dwoma wyrażeniami.

Składnia:

wynik = wyrażenie1 Równoważne wyrażenie2

wynik wymagany; Dowolna zmienna numeryczna (w tym logiczna)
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator Eqv:

W przypadku bitów operator Eqv działa w następujący sposób (patrz od lewej do prawej)

0 0 1
0 1 0
1 0 0
1 1 1

Przykłady:

Ciemny A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Równoważnik B>C" wróci PRAWDA.
MyCheck=B>A Równoważnik B>C" wróci Fałszywy.
MyCheck=A>B Równoważnik B>D" wróci Zero.
MyCheck = A Równoważ B ” wróci -3

operator imp

Służy do logicznej implikacji dwóch wyrażeń.

Składnia:

wynik = wyrażenie1 chochlik wyrażenie2

wynik wymagany; Dowolna zmienna numeryczna (w tym logiczna)
wyrażenie1 koniecznie; Dowolne wyrażenie
wyrażenie2 koniecznie; Dowolne wyrażenie

Uwagi:

Poniższa tabela pokazuje, jak działa operator Imp:

Jeśli wyrażenie1 =

, a wyrażenie2 =

Ten wynik =

Prawdziwe Prawdziwe Prawdziwe
Prawdziwe Fałszywy Fałszywy
Prawdziwe Zero Zero
Fałszywy Prawdziwe Prawdziwe
Fałszywy Fałszywy Prawdziwe
Fałszywy Zero Prawdziwe
Zero Prawdziwe Prawdziwe
Zero Fałszywy Zero
Zero Zero Zero

W przypadku bitów operator Imp działa tak (patrz od lewej do prawej)

0 0 1
0 1 1
1 0 0
1 1 1

Przykłady:

Ciemny A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Imp B>C" wróci PRAWDA.
MyCheck=A>B Imp C>B" wróci Fałszywy.
MyCheck=B>A Imp C>B" wróci PRAWDA.
MyCheck=B>A Imp C>D" wróci PRAWDA.
MyCheck=C>D Imp B>A" wróci Zero.
MyCheck=B Imp A" Zwróci -1

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu