Kilpos VBA. VBA kilpos (1 dalis)

Ciklo teiginiai

VBA Yra du pagrindiniai kilpų tipai: kilpos su skaitikliu (parametrinis) ir kilpos su sąlyga (iteratyvus).

Skaitiklio kilpos naudojamos tais atvejais, kai tam tikrus veiksmus reikia atlikti tam tikrą skaičių kartų.

Sąlyginės kilpos naudojamos, kai tam tikri veiksmai programoje turi būti kartojami tol, kol įvykdoma tam tikra sąlyga.

Kilpos su parametru Už… Kitas

Ciklo struktūra:

Dėl Ciklo_parametras = Pradinė_vertėĮ Galutinė_vertė

[Žingsnis]

Operatoriai

[Išeiti už]

Kitas [Cycle_parameter]

kur Už raktažodį VBA (nuo), nurodant ciklo pradžią;

loop_parameter kintamasis, apibrėžtas kaip ciklo skaitiklis;

Initial_Value skaičius, nurodantis pradinę ciklo parametro reikšmę;

Į raktinį žodį VBA (prieš), dalijimas

Pradinė_vertė ir galutinė_žinios;

Final_Value skaičius, nurodantis ciklo parametro reikšmę,

Kuriuo ciklas baigiasi;

Žingsnio raktinis žodis VBA (žingsnis) naudojamas

Ciklo žingsnio specifikacijos, neprivalomas argumentas;

Žingsnis skaičius, nurodantis ciklo žingsnį, t.y. vertė, pagal kurią

Padidina (arba sumažina) parametro reikšmę

Važiuokite dviračiu kiekviename žingsnyje. Šis skaičius gali būti

Neigiamas;

Išeiti už ankstyvo išėjimo iš ciklo operatorius (neprivaloma);

Kitas raktažodį VBA (kitas) reiškiantis

Ciklo pabaiga.

Ciklo darbas:

1 veiksmas Pirmiausia nustatomas kilpos parametras, apskaičiuojamos ir išsaugomos pradinės ir galutinės šio kintamojo reikšmės.

2 veiksmas Ciklo parametrui priskiriama pradinė vertė.

3 veiksmas Pradinė kilpos parametro vertė lyginama su galutine verte.

Jei ciklo parametras yra didesnis už galutinę reikšmę, programa iš karto išeina iš ciklo ir pereina į kodo eilutę, kuri seka ciklu.

4 žingsnis Vykdomas kilpos korpusas.

5 veiksmas Atlikus kilpos korpusą, kilpos parametrui priskiriama kita reikšmė. Eikite į 3 veiksmą.

Pastaba.

1. Jei naudojamas raktinis žodisŽingsnis , tada ciklo parametras keičiasi pagal skaičių, nurodytą po šio žodžio. Jei žodisŽingsnis nėra, tada žingsnio reikšmė lygi vienetui.

1 pavyzdys.

Jei I = 0–10 2 veiksmas (I vertė padidės 2)

2. Už...Kitas ciklas gali būti nutrauktas anksčiau laiko, kai pasiekiama kokia nors sąlyga. Norėdami tai padaryti, reikiamoje kilpos vietoje turite įdėti operatorių Išeiti už.

2 pavyzdys.

Dim S kaip sveikasis skaičius

Pritemdytas j Kaip sveikasis skaičius

S=2

Jei j = 1–10

S = S + j

Jei S > 6 Tada

Išeiti už (Išeikite iš ciklo, jei reikšmė S > 6)

Pabaiga Jei

Kitas j

MsgBox (S)

Sąlyginės kilpos (kartojantis)

Jeigu kurį nors veiksmą (kelis veiksmus) reikia atlikti daug kartų, bet iš anksto nežinoma, kiek kartų ir tai priklauso nuo kokios nors sąlygos, tuomet reikėtų naudoti ciklą su išankstine arba posąlyga.

VBA yra du pagrindiniai ciklai DARYK... KILPA su sąlyga, kurią įvedė raktinis žodis Nors ir su sąlyga, kurią įvedė raktinis žodis Iki . Abu jie gali būti su išankstine arba po sąlyga.

Sintaksė:

kur daryti raktažodis (do);

Nors raktažodis (dar);

Iki raktažodis (iki);

Kilpa raktinis žodis, nurodantis ciklo pabaigą;

<условие>loginė išraiška, kurios tiesa patikrinama

Kiekvienos kilpos korpuso vykdymo pradžioje;

<тело_цикла>savavališka operatorių seka;

Darykite...Statydami rašoma: darykite, kol tenkinama sąlyga. Dizaine Daryti...Kol Už

Do...Iki statybos rašoma: daryti tol, kol bus įvykdyta sąlyga. Dizaine Daryk...Iki Norėdami padidinti žingsnį, turėtumėte parašyti specialų operatorių, nes jame, skirtingai nuo dizaino Dėl , tai nedaroma automatiškai.

Po raktinio žodžio parašyta būklė Iki , tikrinamas kiekvienos iteracijos pabaigoje (po to, kai įvykdomas ciklo korpusas). Atminkite, kad tai neveikia taip pat, kaip cikle Nors . Jei sąlyga yra teisinga ( Tiesa ), tada kilpa baigiasi. Jei sąlyga netenkinama (neteisinga Netiesa ), tada vėl vykdomas kilpos kūnas.

1 pavyzdys.

Problemos formulavimas. Apskaičiuokite baigtinės serijos sumą naudodami paprogramės procedūrą.

Užduočių vykdymo technologija:

1. Pradiniai duomenys: aš  Z

Rezultatas: S  R .

2. Įveskite šią pasirinktinę procedūrą standartiniame projekto modulyje naudodami kilpą su išankstine sąlyga Kol:

Sub summa()

Dim S kaip sveikasis skaičius

Pritemdykite kaip sveikasis skaičius

S = 0

i=1

Daryk, kol i<= 10

S = S + i^2

i = i + 1

Kilpa

MsgBox (S)

Pabaigos sub

3. Įveskite šią pasirinktinę procedūrą standartiniame projekto modulyje naudodami kilpą su išankstine sąlyga Iki:

Sub summa()

Dim S kaip sveikasis skaičius

Pritemdykite kaip sveikasis skaičius

S = 0

i=1

Atlikite iki i > 10

S = S + i^2

i = i + 1

Kilpa

MsgBox (S)

Pabaigos sub

4 Įveskite šią pasirinktinę procedūrą standartiniame projekto modulyje, naudodami kilpą su sąlyga Kol:

Sub summa()

Dim S kaip sveikasis skaičius

Pritemdykite kaip sveikasis skaičius

S = 0

i=1

S = S + i^2

i = i + 1

Kilpa Nors i<= 10

MsgBox (S)

Pabaigos sub

5 Įveskite šią pasirinktinę procedūrą standartiniame projekto modulyje, naudodami kilpą su sąlyga Iki:

Sub summa()

Dim S kaip sveikasis skaičius

Pritemdykite kaip sveikasis skaičius

S = 0

i=1

S = S + i^2

i = i + 1

Ciklas iki i > 10

MsgBox (S)

Pabaigos sub

Be sprendimų priėmimo struktūrų, yra ir kita valdymo struktūros rūšis, vadinama ciklu.

Ciklas yra algoritminė struktūra, kurios pagalba realizuojami daugkartiniai operatorių blokų pakartojimai.

Yra trys pagrindiniai „Visual Basic“ kilpų tipai, kurie įgyvendinami naudojant For:Next, Do:Loop ir While:Wend konstrukcijas.

Dėl: Kitas ciklas. Naudojamas, kai iš anksto žinomas tam tikro teiginių bloko pasikartojimų skaičius. Šis dizainas atrodo taip:

Skaitikliui = pradinė vertė Iki galutinės vertės Operatoriai1 operatoriai2 Kitas [skaitiklis]

Kai aukščiau pateikti teiginiai vykdomi pirmą kartą, skaitiklio kintamajam priskiriama pradinė reikšmė, po kurios galimi du variantai. Jei patikrinus sąlygų skaitiklį > galutinę reikšmę gaunama reikšmė True, tai ciklas baigiasi, o blokai operatoriai1 ir operatoriai2 niekada nevykdomi. Kita vertus, jei sąlygų testo rezultatas yra False, tada teiginių blokai vykdomi pirmą kartą, po kurio įvyksta perėjimas į ciklo pradžią. Tada skaitiklio kintamojo reikšmė padidinama žingsniu, esančiu po raktinio žodžio Step (jei jo nėra, nustatomas žingsnis = 1). Po to dar kartą tikrinamas sąlygų skaitiklio teisingumas > galutinė reikšmė ir pan., ciklo pabaiga įvyksta tuo momentu, kai šio patikrinimo rezultatas yra reikšmė True.

Dažnai reikia nutraukti kilpos „avarinę situaciją“, kai įvykdoma kokia nors papildoma sąlyga. Tokiu atveju ciklo viduje turėtumėte naudoti frazę Exit:For service, kuri paprastai įdedama į valdymo konstrukciją, pavyzdžiui:

Jei būsena Tada Išeiti Už

Jei sąlygos patikrinimo rezultatas yra True, tada ciklo vykdymas bus nutrauktas ir operator1 blokas bus vykdomas dar kartą, bet operator2 blokas ne.

Daryti: kilpa. Jis naudojamas, kai iš anksto nežinomas kilpos korpuso operatorių pasikartojimų skaičius. Yra keturi šio dizaino variantai. Naudojant pirmuosius du, ciklas bus vykdomas daug kartų arba iš viso nebus vykdomas.

Daryti iki sąlygos Ciklo teiginiai

Jei sąlygos patikrinimo rezultatas yra False, tada vykdomas teiginių blokas, kitu atveju pereinama į teiginį, esantį po paslaugų žodžio Loop. Kita vertus, jei pirmasis sąlygos bandymas grąžina rezultatą True, tada ciklas nebus vykdomas net vieną kartą.

Atlikite sąlygų ciklo pareiškimus

Jei sąlyga yra teisinga, tada teiginių blokas yra vykdomas, bet jei jis klaidingas, tai yra, patikrinimo rezultatas yra False, tai ciklas nebus vykdomas net vieną kartą.

Jei naudojamos paskutinės dvi konstrukcijos, ciklas bus vykdomas bent vieną kartą.

Atlikti pareiškimų kilpą iki būklės

Teiginio blokas vykdomas tol, kol sąlygos testo rezultatas yra False, kitaip ciklas baigiasi.

Atlikite pareiškimų kilpą, kol būsite

Jei sąlyga klaidinga, vykdomas teiginių blokas, bet jei teisinga, t.y. Patikrinimo rezultatas yra True, tada ciklas baigiasi.

Nors kilpa: Wend. Jis taip pat naudojamas, kai iš anksto nežinomas ciklo korpuso teiginių pasikartojimų skaičius ir turi tokią sintaksę:

Nors būklė Wend pareiškimai

Jei sąlygos patikrinimo rezultatas yra True, tada vykdomas teiginių blokas, kitu atveju pereinama prie teiginio, esančio po tarnybinio žodžio Wend. Kita vertus, jei pirmojo sąlygos testo rezultatas yra False, ciklas nebus vykdomas net vieną kartą.

Operatoriaus sintaksė:

DėlSkaitliukas= Pradėti ToGalas[ŽingsnisŽingsnis]

Block_Operators

KitasSkaitliukas

Čia nurodyta:

Dėl Dėl (būtinas raktažodisVB);

Į prieš (būtinas raktažodisVB);

Block_Operators– paskambino vienas ar keli operatoriai dviračio korpusas;

skaitiklis - sveikasis kintamasis, skaičiuojantis įvykdytų kilpų skaičių;

Pradžia, Pabaiga - pradinės ir galutinės skaitiklių vertės;

Žingsnisžingsnis(raktinis žodisVB);

Žingsnis – skaitiklio keitimo žingsnis; gali būti neigiamas; parametras yra neprivalomas, nes jei žingsnis yra 1, galiteStep Žingsnisžemesnis;

Next – next (būtinas raktažodis VB, ciklo pabaigos operatoriaus įrašas).

Skaitiklio vertė (pradžia, pabaiga) gali būti skaitinės konstantos arba sveikojo arba tikrojo tipo kintamieji gali būti neigiami arba teigiami skaičiai. Kad kilpos korpusas būtų vykdomas bent kartą, turi būti Pradžia ≤ Pabaiga, Jeigu Žingsnis> 0 ir Pradžia ≥ Pabaiga, Jeigu Žingsnis< 0. Kai tik tai paaiškės Skaitliukas>Galas ( Jeigu Pradėti< Конец), Ciklo vykdymas baigiasi. Jeigu Pradėti =Galas, kilpa bus vykdoma vieną kartą;

9.1 pavyzdys .Funkcijų įvertinimasY = 2 – 1.5 Sinxkai X intervale keičiasi 0,2 žingsniais.

Programos, skirtos Y skaičiavimui ir argumentui X bei funkcijai Y išvesti, fragmentas:

Jei X = 0–2,4 0,2 veiksmas

Y = 2 – 1,5*Sin(X)

Norėdami suprasti, kaip veikia ši kilpa, čia yra panašios kilpos programa, sukurta naudojant operatoriusEiti į, žymos, operatoriusJeiguTada.

M1: X = X + 0,2

Jei X<= 2.4 Then

Y = 2 – 1,5*Sin(X)

Pažiūrėkime, kaip ši programa veikia. Pirmas skaičiavimas Y yra nestandartinis, tarsi iškrenta iš ciklo. Ciklas prasideda po pirmojo valdymo GoToM1 perdavimo etiketei M1. Eilutėje, pažymėtoje M1, argumentas X padidinamas 0,2 žingsniu ir iš karto patikrinama, ar nauja X reikšmė viršija galutinę 2,4 reikšmę. Jei jis neviršija, tada Y skaičiavimas kartojamas su šiuo nauju X. Tada vėl vykdomas GoToM1 operatorius - valdymas perkeliamas į eilutę, pažymėtą M1. Šios Y skaičiavimo iteracijos (ciklai) baigsis, kai tik X viršys 2,4.

Dabar palyginkime programą su If su ciklu For...Next.

Jei X = 0–2,4 0,2 veiksmas

pakeičia dvi eilutes

M1: X = X + 0,2

Jei X<= 2.4 Then

Tai paskutinės dvi kodo eilutės, kurios vykdomos cikle For, bet mes jos nematome. Mes juos užkodavome eilute cFor... GoTo M1 kodo eilutė užkoduota žodžiu Next X (pažodžiui: next X). Taip gaunamas kompaktiškas dizainas.

Kai naudojate For...Next kilpą, turite išmokti naudoti ciklo skaitiklį įvairioms problemoms spręsti. Norėdami išsiaiškinti, kaip naudoti skaitiklį problemai išspręsti, turite išanalizuoti problemos formuluotę, rasti kai kurių problemos parametrų kitimo modelius.

9.2 pavyzdys . Eilutės elementų sumos nustatymas: .

Programos fragmentas:

S = 0 ‘ S – eilučių suma

Jei i = 1 iki 16 ‘, skaitiklis i yra trupmenos vardiklis

S = S + 1/i ‘ sumos kaupimas

Spausdinti „S =“; S ‘ išveskite S sumą į formą

Kiekvienai skaitiklio i reikšmei išraiška 1/i paeiliui sudaro serijos elementus, pradedant nuo 1.

9.3 pavyzdys . Elementų serijos sumos apskaičiavimas
.

Programos fragmentas:

S = 0 ‘ S – eilučių suma

Jei i = 1–18 ‘ skaitiklis i – skaitiklis

S = S + i/(i + 1) ‘ vardiklis yra 1 didesnis už skaitiklį

Spausdinti „S =“; S ‘ išveskite S sumą į formą

9.4 pavyzdys . Sumos apskaičiavimas: 5 + 8 + 11 + … + 32 + 35

Programos fragmentas:

S = 0 ‘ S – eilučių suma

Jei i = 5 iki 35 3 veiksmas ‘ gauname aritmetiką _

progresija su vardikliu 3

Spausdinti „S =“; S

9.5 pavyzdys. Sumos apskaičiavimas duotam x:

Problemos analizė rodo, kad X laipsnis svyruoja nuo 1 iki 10. Šiuo atveju skaitiklis koeficiente X yra didesnis už laipsnį 1, o vardiklis - 2. Laipsnio reikšmę sudarysime naudodami skaitiklis i. Tada galite sukurti tokią programą (fragmentą):

S = 1 ‘ S – eilučių suma

Jei i = 1–10 ‘, kaip ir skaitiklis i, laipsnis keičiasi ties X

S = S + (-1)^i*(i + 1)*x^i / (i + 2)

Spausdinti „S =“; S

CiklaiDėlKitasnaudojamaįvesties išvesties Irmasyvo apdorojimas .

9.6 pavyzdys. Masyvo elementų reikšmių įvestis ir išvestis B(N).

Programos fragmentas:

' Mes nepriskirsime reikšmės kintamajam N, _

įvesta formoje txtN teksto lauke:

B(i) = InputBox("Įveskite elementą B(" & i & ")", _

"Įvesties masyvas B(" & N & "))

Spausdinti " "; B(i);

Funkcija Įvesties laukelis() rodomas dialogo langas su uždarymo mygtuku, nurodytu pranešimu, įvesties lauku, mygtukais Gerai,Atšaukti, su nurodyta antrašte (arba be jos). Jei įvedamas skaičius 12 - masyvo N dydis, tada mūsų pavyzdyje, kai jis pirmą kartą pasirodys, šis langas atrodys taip:

Kaip matome, žinutė Įveskite elementą B(1) paragins įvesti 1-ojo elemento reikšmę teksto laukelyje. Šis langas bus rodomas 12 kartų, nes masyve yra 12 elementų. Tai išplaukia iš formos pavadinimo. Elemento B(i) indeksas kvietime svyruos nuo 1 iki 12.

Jei formoje norite rodyti tik masyvo B(N) elementų reikšmes, tada ciklo turinį sudarys vienas teiginys:

Masyvo elementų peržiūra, norint atlikti kai kuriuos veiksmus su jais, taip pat atliekama naudojant For...Next ciklo operatorių.

Duokim vienmačių masyvų apdorojimo pavyzdžiai.

9.7 pavyzdys . Didžiausio elemento nustatymas masyve B(M).

Išskyrus pradinių duomenų įvedimą ir rezultatų išvedimą, trumpai aprašome algoritmą:

    Deklaruojame kintamąjį Bmax, kuriame įvesime pirmojo masyvo elemento reikšmę ir kintamąjį Imax, kuriam priskirsime 1 – pirmojo masyvo elemento indeksą.

    Ciklo metu, naudodami operatorių For...Next, peržiūrime visus masyvo elementus, pradedant nuo 2-ojo. Naudodami operatorių If...Then palyginame jų reikšmes su reikšme, saugoma Bmax kintamajame.

    Jeigu paaiškėja, kad masyvo elemento reikšmė yra didesnė už Bmax reikšmę, tai Bmax priskiriama šio elemento reikšmė, o reikšmei Imax – šio masyvo elemento indeksas.

Ciklui pasibaigus, kintamajame Bmax bus maksimalaus elemento reikšmė, o Imax – jo indeksas (skaičius).

Programa šiai algoritmo daliai.

Bmax = B(1): Imax = 1

Jei B(i) > Bmax, tada Bmax = B(i): Imax = i

9.8 pavyzdys. Masyvo teigiamų elementų sumos, sandaugos ir skaičiaus nustatymasD(M).

Kintamieji: S, P, K – atitinkamai teigiamų elementų suma, sandauga ir skaičius.

Algoritmas toks apibrėžimas:

    Kintamiesiems S ir K priskiriame nulį, o kintamajam P priskiriame 1. Paprastai kintamieji, kuriuose kaupiama suma, čia yra S ir k, visada nustatomi į nulį prieš kilpą, o kintamieji kuriam produktas yra apskaičiuojamas, priskiriamas 1.

    Naudodami For...Next kilpą pereiname per visus masyvo elementus ir patikriname, ar jie teigiami (D(i) > 0).

    Jei paaiškėja, kad elementas yra teigiamas, tada jo reikšmę pridedame prie sumos S reikšmės ir naują sumą išsaugome tame pačiame kintamajame. Kintamasis P padauginamas iš teigiamos elemento reikšmės ir taip pat saugomas kintamajame P. O prie kintamojo K pridedame 1 ir naują reikšmę įrašome tame pačiame kintamajame

ProgramaŠi algoritmo dalis atrodo taip:

S = 0: P = 1: K = 0

Jei D(i) > 0 Tada

S = S + D(i) ‘ taip kaupiasi suma _

teigiamos masyvo elementų reikšmės D(i)

P = P*D(i) ‘teigiamo sandaugos apibrėžimas

"masyvo elementai

K = K + 1 ‘ šis operatorius vadinamas COUNTER, štai jis

“ apibrėžia teigiamų masyvo elementų skaičių

9.9 pavyzdys. Nelyginių masyvo elementų sumos, sandaugos, skaičiaus ir vidurkio radimasD(M).

Štai tokio apibrėžimo programos fragmentas.

S = 0: P = 1: K = 0

Jei D(i) Mod 2<>0 Tada

Ssr = S/k ‘ skaičiuojant nelyginių elementų vidurkį

Palyginkite šį programos fragmentą su programa 9.8 pavyzdyje. Ši programa beveik visiškai pakartoja ankstesnę. Pasikeitė tik sąlyga If teiginyje. Sąlyga D(i) 2 modifikacija<>0 reiškia, kad mes ieškome masyvo D(i) elementų, kurie nėra tolygiai dalijami iš 2, t.y. nelyginių elementų. Jei patikrinsime sąlygą D(i) Mod 2 = 0, tai pasirinksime lyginius masyvo elementus.

Kaip žinoma, padalijimas pagal Mod duoda dalybos likutį sveikaisiais skaičiais. Pavyzdžiui, įvykdžius operatorių d = 34Mod4, kintamasis d bus lygus 2. Todėl norėdami pasirinkti masyvo elementus, kurie yra 4 kartotiniai, turime patikrinti sąlygą D(i) Mod 4 = 0. Sąlyga bus būti panašūs, jei ieškome elementų, kurie yra kitų skaičių kartotiniai. Šie kiti skaičiai bus rašomi vietoj 4.

9.10 pavyzdys. Masyvo elementų rašymasR(N), 5 kartotiniai, į kitą masyvą ir išveda naują masyvą į formą.

Pažymime kitą masyvą, pavyzdžiui, R5(N). Šio naujo masyvo dydis turėtų būti toks pat kaip ir pradinio, nes kraštutiniu atveju visi elementai gali būti 5 kartotiniai.

Problemos algoritmas:

    Atstatyti skaitiklį k. Naudodami For...Next ciklo operatorių, peržiūrime visus masyvo R(N) elementus.

    Patikriname, ar kiekvienas elementas yra 5 kartotinis, naudodami operatorių If...Then ir masyvo elementą padalydami iš Mod.

    Jei elementas yra 5 kartotinis, tai naudojant k=k+ 1 tipo skaitiklį sudarome masyvo R5(N) indeksus, pradedant nuo 1, ir įrašome į šį kitą masyvą –R5(N).

    Jei k skiriasi nuo nulio, formoje parodykite masyvą R5().

    Jei k yra lygus nuliui, išvesime: „Iš 5 dalijamų elementų nėra.

Programos fragmentas:

Jei R(i) Mod 5 Tada k = k + 1: R5(k) = R(i)

Jeigu k<>0 Tada

Spausdinti "Nėra elementų, dalijamų iš 5"

Kilpos gali būti įdėtos į kitas kilpas.

Pademonstruosime darbą įdėtos kilpos . Toliau pateiktoje programoje rodomos ciklo skaitiklių i, j ir k reikšmės. Iš i, j, k išvesties tampa aišku, kaip vykdomos įdėtos kilpos.

Privatus sub frmCycle_DblClick()

ScaleMode = 4 ‘vienetai – simboliai

Jei i = 1–3 ‘išorinė kilpa

Spausdinti "i = "; i;

Jei j = 1–4 „1-oji įdėta kilpa

DabartinisX = teksto plotis("i = 1 ") + 5

Spausdinti "j = "; j;

DabartinisX = teksto plotis("i = 1 j = 1 ") + 7

Jei k = 1–5 „2-oji įdėta kilpa

Pateiktoje formoje (1 pav.) pateikiami visų trijų kilpų skaitiklių išvedimo rezultatai: išorinė kilpa – skaitiklis i, pirmoji įdėta kilpa – skaitiklis j ir antroji, vidinės kilpos – skaitiklis k. Kaip matome, lėčiausias skaitiklis yra išorinė kilpa(poi) ir „Greičiausias“ yra vidinės kilpos skaitiklis (pagalk).

Programa vykdoma dukart spustelėjus kairįjį pelės mygtuką frmCicli formoje.

CurrentX, CurrentY – formos savybės, nurodančios informacijos atvaizdavimo pradžios taško X, Y koordinates naudojant Print metodą (X ir Y ašių vietą formoje žr. 1 pav.).

TextWidth() yra funkcija, kuri grąžina funkcijoje nurodyto teksto plotį kaip argumentą dvigubose kabutėse.

Įdėtos kilpos naudojamos apdorojant dvimačius masyvus (matricas). Tačiau kai kuriose užduotyse, išskyrus dvimačio masyvo elementų įvestį ir išvestį, galite apsiriboti viena kilpa. Pažvelkime į keletą matricinio programavimo pavyzdžių.

9.11 pavyzdys. Sveikųjų skaičių matricos (dvimačio masyvo) įvestis ir išvestisintA(N).

Galite įvesti matricą pagal eilutes ir stulpelius . Paprasčiau - eilutė po eilutės, jei masyvo elementų išvestį į formą užprogramuojate iškart po jų įvedimo.

Matricos įvestis ir išvestiseilutė po eilutės - 1 fragmentas.

Dim M kaip sveikasis skaičius, N kaip sveikasis skaičius, i kaip sveikasis skaičius, j kaip sveikasis skaičius

Dim intA() Kaip sveikasis skaičius ‘ deklaruoja dinaminį masyvą

M = Val(txtN.Text) ‘ M – eilučių skaičius

N = Val(txtN.Text) ‘ N – stulpelių skaičius

ReDim intA(M, N) Kaip sveikasis skaičius ‘ iš naujo apibrėžkite masyvą

Jei i = 1 iki M ‘, i išsaugos savo vertę iki galo

„Įdėta kilpa j nebus vykdoma

Spausdinti " "; intA(i, j); ‘ išvestis eilutė po eilutės

Spausdinti „eikite į naujos eilutės pradžią

Norėdami įvesti matricą pagal stulpelius, išorinę kilpą turite sudaryti j (nurodo stulpelių numerius), o vidinę – i (nurodo eilučių numerius).

Matricos įvestis ir išvestispagal stulpelius 2 fragmentas.

PrY = 2500: CurrentY = PrY ‘ PrY nustato pradžios Y koordinatę

“ rodo pirmąjį kiekvienos formos stulpelio elementą

Jei j = 1 iki N ‘ j išsaugos savo vertę, kol bus visiškai

„i įdėta kilpa nebus vykdoma

intA (i, j) = InputBox ("Įveskite elementą intA(" & i & "," & j & ")", _

"Įvesties matrica intA(" & M & "," & N & ")")

Spausdinimo skirtukas (6 * j); intA(i, j) ‘išvestis stulpeliais

CurrentY = PrY ', kad būtų rodomas pirmasis elementas

“ kitą stulpelį

Šis antrasis programos fragmentas nekartoja pirmųjų 5 pirmojo fragmento eilučių. Funkcija Tab(6 * j) nustato išvesties pradžią eilutėje (simboliais), pradedant nuo kairiojo formos krašto. Koordinatė PrY čia lygi 2500 twips, bet galite pasirinkti kitą reikšmę.

9.12 pavyzdys . Masyvo elementų verčių užsakymasV(N) Didėjantis.

Yra keli masyvų užsakymo algoritmai. Štai vienas iš jų: naudojant įdėtas kilpasDėlKitasparenkame elementus, pradedant nuo pirmojo iki priešpaskutinio, ir kiekvieną iš jų lyginame su vėlesniais elementais; jei paaiškėja, kad sekantis elementas yra mažesnis nei pasirinktas, mes juos sukeičiame.

Programos, kuri įgyvendina šį algoritmą, fragmentas:

Jei i = 1 iki N – 1

Jei j = i + 1 iki N

Jei V(j)< V(i) Then P = V(i): V(i) = V(j): V(j) = P

Paaiškinkime šį programos fragmentą.

Naudodami išorinę kilpą su skaitikliu i, pasirenkame elementą V(i), kad palygintume su vėlesniais elementais. Vidinė kilpa su skaitikliu j atrenka vėlesnius V(j) elementus palyginimui. Pradinė reikšmė lygi i + 1. Tai pirmasis elementas iš vėlesnių.

Norėdami apsikeisti elementų V(i) ir V(j) reikšmėmis, įvedame tam tikrą kintamąjį P, kuriame laikinai „paslėpiame“ vieno iš masyvo elementų reikšmę (programoje tai yra V(i). )). Tada elementui V(i) priskiriama elemento V(j) reikšmė, o elementui V(j) – V(i), kuri saugoma kintamajame P. Jei „paslėpsime“ reikšmę V(j) P, tada apsikeitimo reikšmėmis kodas bus toks: P = V(j): V(j) = V(i): V(i) = P Rezultatas nepasikeis.

Į surūšiuoti masyvą mažėjančia tvarka, užtenka patikros sąlygą parašyti forma V(j) > V(i), t.y., pakeisti nelygybės ženklą į kitą.

Jei masyvas yra ne skaitinis, o eilutė, o pavardės įvedamos į masyvo elementus, tai naudojant 9.12 pavyzdžio programą, pavardžių sąrašą galima rūšiuoti abėcėlės tvarka. Faktas yra tas, kad kompiuteryje naudojamos abėcėlės raidės yra teisingos šios nelygybės: A< Б < В < Г….< Я и т. д., поскольку числовые коды букв алфавита последовательно увеличиваются, начиная с А и до конца алфавита. Это же справедливо и для букв английского алфавита.

9.13 pavyzdys . Nelyginių matricos stulpelių teigiamų elementų sumos apskaičiavimasF(M, N) ir išveskite sumas į formą.

Programos algoritmas:

    Naudodami išorinę kilpą su 2 žingsniu, sudarome nelyginių matricos stulpelių indeksą, pradedant nuo pirmojo stulpelio.

    Iš naujo nustatome sumą S, kurioje kaupsis teigiamų elementų suma.

    Vidinėje kilpoje patikriname masyvo elemento ženklą.

    Jei masyvo elementas yra teigiamas (> 0), apskaičiuojame sumą S.

    Pasibaigus vidinei kilpai, formoje rodome sumą S.

Fragmentas programas:

Jei j = 1 iki N, 2 veiksmas

Jei F(i, j) > 0, tada S = S + F(i, j)

Spausdinti "Stulpelio suma"; j; ":"; S ‘ j – stulpelio numeris!

Įdėtos kilpos leidžia tvarkyti variantų išvardijimas ir išspręsti problemas, kurių negalima išspręsti analitiškai. Atlikus paiešką, gaunami sprendimo variantai, tarp kurių pasirenkamas vienas ar keli, atitinkantys problemos sąlygas.

9.14 pavyzdys. Yra 1801 rublis. Kiek šokoladų galite nusipirkti už 31 rublį? ir bandeles už 18 rublių visiškai išleisti visus pinigus.

Programa:

Suma = 1801

Visi šokoladai = suma\31: visi masiniai = suma\18

Jei i = 1 Visiems šokoladams

Jei j = 1 Į VseBulk

Kaina = i * 31 + j * 18 'bendra pirkimo kaina

Jei kaina = 1801 Tada

Spausdinti "Šokoladas:"; i; Skirtukas(19); "Bulok:"; j

Paaiškinkime programą, kurioje naudojame kintamuosius, pavadintus rusų kalba.

Pirmiausia nustatome, koks yra didžiausias vien šokoladinių saldainių ar tik suktinukų skaičius, kurį galima įsigyti už visą sumą. Gautas „AllChocolates“ ir „AllBulks“ vertes naudojame norėdami apriboti šokoladinių saldainių ir suktinukų skaičiaus paieškų skaičių. Kiekvienai šokoladinių saldainių skaičiaus (i) ir ritinėlių skaičiaus (j) vertei nustatome bendrą jų pirkimo kainą. Jei apskaičiuota Kaina yra 1801, tai pasirinktas variantas yra vienas iš problemos sprendimų.

Funkcija Tab() nurodo, iš kokios pozicijos nuo formos krašto bus rodoma informacija, einanti po šios funkcijos. Jei Tab(19), tai iš 19 pozicijos.

Programa rodo 3 galimus pirkimo variantus:

Šokoladas 7, suktinukai 88

Šokoladas 25, suktinukai 57

Šokoladas 43, bandelės 26

Jei norite vienareikšmiškai atsakyti, turite suformuluoti papildomą sąlygą. Pavyzdžiui, „nupirkta mažiau bandelių nei šokoladų“. Tada vienintelis sprendimas bus 3-asis variantas.

Yra daug matematinių problemų, kurias galima paprasčiausiai išspręsti brutalia jėga, naudojant įdėtos kilpos programavimą.

Paskutinis atnaujinimas: 2015-10-30

Kitas valdymo struktūrų tipas yra kilpos. VB.NET naudoja kelių tipų kilpas.

Dėl...Next Loop

Šiuo atveju ciklas vykdomas tam tikrą skaičių kartų, o šis skaičius nurodomas skaitikliu:

Jei i As Integer = nuo 1 iki 9 Console.WriteLine("Skaičiaus (0) kvadratas yra (1)", i, i * i) Kitas

Čia kintamasis i veikia kaip skaitiklis. Po žodžio Į dedame maksimalią skaitiklio reikšmę. Su kiekvienu ciklu skaitiklio reikšmė padidėja vienu. Ir ši vertė lyginama su verte po Į. Jei šios dvi vertės yra lygios, kilpa nustoja veikti.

Dirbdami su kilpomis, skaitiklio reikšmę galime padidinti ne tik vienu, bet iš viso bet kokiu skaičiumi. Norėdami tai padaryti, turite naudoti raktinį žodį Žingsnis ir po jo nurodykite ciklo žingsnį, kuriuo skaitiklio vertė bus padidinta, arba galite padidinti skaitiklį tiesiai cikle:

Jei i Kaip sveikasis skaičius = 1 iki -9 Žingsnis -1 Jei j kaip sveikasis skaičius = 1 iki 9 Console.WriteLine("Skaičių i ir j sandauga yra (0)", i * j) j += 1 Kitas Kitas

Atkreipkite dėmesį, kad pirmosios kilpos žingsnis yra nustatytas į neigiamą reikšmę, o skaitiklio reikšmė sumažinama vienu su kiekvienu praėjimu. Vidinėje kilpoje skaitiklis j padidinamas 2 kiekvieną kartą, kai jis praeina, nes pagal numatytuosius nustatymus jis padidinamas vienu, o cikle taip pat aiškiai padidiname jį vienu. Dėl to vidinė kilpa veikia penkis kartus, o išorinė - devynis kartus, tai yra, iš tikrųjų gaunami 45 ciklai.

Ciklas kiekvienam...Kitas

A Kiekvienai ciklas kartojasi per tam tikros grupės elementus, pvz., masyvą arba rinkinį. Tarkime, kad turime tam tikrą sveikųjų skaičių tipo masyvą ir turime inicijuoti šį masyvą atsitiktinėmis reikšmėmis, o tada visus jo elementus rodyti ekrane:

"Sukurkite penkių skaičių masyvą Dim numeriai (4) Kaip sveikasis skaičius Dim r kaip naujas atsitiktinis() "inicijuoti masyvą For i Kaip sveikasis skaičius = 0 iki numerių. Ilgis - 1 skaičiai (i) = r. Kitas(100) Kitas " Išvesti elementų masyvą kiekvienam i kaip sveikasis skaičius In numeriai Console.Write("(0) ", i) Kitas

Teiginyje „For Every“ pirmiausia nurodome kintamąjį, kuris gaus masyvo elementų reikšmes. Ir po raktinio žodžio Į Mes nurodome grupę, kurioje turime kartoti visus elementus.

Nors Loop

Ciklas While vykdomas tol, kol įvykdoma tam tikra sąlyga, nurodyta po žodžio While:

Pritemdyti j kaip sveikąjį skaičių = 10, kol j > 0 konsolė. WriteLine(j) j -= 1 pabaiga, nors

Padarykite kilpą

Ciklas Do, kaip ir Nors ciklas, vykdomas tol, kol įvykdoma tam tikra sąlyga. Tačiau jis būna įvairių formų. Taigi, toliau pateiktame pavyzdyje pirmiausia patikrinama sąlyga ir tada vykdomas cikle apibrėžto kodo blokas:

Pritemdyti j kaip sveikąjį skaičių = 10 daryti, kol j > 0 konsolė. WriteLine(j) j -= 1 ciklas

Šiuo atveju ciklas tęsiasi tol, kol j yra didesnis už nulį. Tačiau yra dar vienas įrašas, kur vietoj žodžio Nors vartojamas žodis Iki, o ciklas vykdomas tol, kol įvykdoma tam tikra sąlyga, tai yra, kol j reikšmė tampa mažesnė už nulį:

Pritemdyti j kaip sveikąjį skaičių = 10 daryti iki j< 0 Console.WriteLine(j) j -= 1 Loop

Jei iš pradžių cikle nurodyta sąlyga nėra teisinga, ciklas neveiks. Bet mes galime apibrėžti patikrinimą ciklo pabaigoje, taigi mūsų ciklas bus paleistas bent kartą:

Pritemdyti j kaip sveikąjį skaičių = -1 Atlikite Console.WriteLine(j) j -= 1 ciklas iki j< 0 "либо Do Console.WriteLine(j) j -= 1 Loop While j > 0

Tęsimo ir išėjimo pareiškimai

Dažnai reikia ne laukti ciklo pabaigos, o iš karto išeiti iš ciklo, jei įvykdoma tam tikra sąlyga. Norėdami tai padaryti, naudokite operatorių Išeiti, po kurio jie nurodo kilpos, iš kurios atliekamas išėjimas, tipą, pavyzdžiui, Exit Do (Exit While):

Dim r As New Atsitiktinis() Dim num As Integer = r.Next(100) For i As Integer = nuo 0 iki 100 skaičius -= 1 Jei skaičius< 50 Then Exit For Next Console.WriteLine(num)

Yra ir kita užduotis – išeiti ne iš ciklo, o iš dabartinio praėjimo ar iteracijos ir pereiti prie kito. Norėdami tai padaryti, naudokite teiginį Continue, po kurio nurodykite ciklo, iš kurio išeinate, tipą, pavyzdžiui, Continue While:

Dim r As New Random() Dim num As Integer = r.Next(100) For i As Integer = nuo 0 iki 10 skaičius -= 7 Jei skaičius< 50 AndAlso num >25 Tada Continue For End If Console.WriteLine(num) Next

Tokiu atveju kiekviename ciklo eige iš num atimame skaičių 7 ir tada pažiūrime, ar skaičius num priklauso intervalui nuo 25 iki 50. Ir jei taip, pereiname prie naujos ciklo iteracijos, o jei ne, tai rodome ekrane.

Gali būti situacija, kai kodo bloką reikia vykdyti kelis kartus. Paprastai teiginiai vykdomi nuosekliai: pirmasis funkcijoje vykdomas sakinys, po to antrasis ir t.t.

Programavimo kalbos suteikia skirtingas valdymo struktūras, kurios įgalina sudėtingesnius vykdymo kelius.

Ciklo sakinys leidžia atlikti sakinį ar teiginių grupę kelis kartus. Žemiau pateikiamas bendras VBA ciklo teiginio vaizdas.

VBA pateikia šiuos kilpų tipus, kad būtų galima tvarkyti kilpos reikalavimus. Spustelėkite toliau pateiktas nuorodas, kad patikrintumėte jų informaciją.

už kilpą

Ciklas for yra pasikartojimo valdymo struktūra, leidžianti kūrėjui efektyviai parašyti kilpą, kurią reikia atlikti tam tikrą skaičių kartų.

Sintaksė

Žemiau pateikiama for ciklo sintaksė VBA.

Skaitikliui = pradžia Iki pabaigos .... .... Kitas

Struktūrinė schema

Žemiau yra valdymo srautas ciklo režimu -

  • Pirmas žingsnis baigtas. Šis veiksmas leidžia inicijuoti bet kokius kilpos valdymo kintamuosius ir padidinti žingsnių skaitiklio kintamąjį.
  • Antra, įvertinama būklė. Jei tiesa, ciklo korpusas vykdomas. Jei jis klaidingas, ciklo turinys nevykdomas ir valdymo srautas pereina prie kito teiginio iš karto po For ciklo.
  • Kai įvyksta For ciklo ciklas, valdymo srautas pereina prie kito teiginio. Šis teiginys leidžia atnaujinti bet kokius ciklo valdymo kintamuosius. Jis atnaujinamas pagal žingsnių skaitiklio vertę.
  • Dabar būklė dar kartą vertinama. Jei tiesa, ciklas vykdomas ir procesas kartojamas (ciklo korpusas, tada žingsnio padidėjimas, tada vėl sąlyga). Kai sąlyga tampa klaidinga, ciklas „For“ baigiasi.

pavyzdys

Pridėkite mygtuką ir pridėkite šią funkciją.

Private Sub Constant_demo_Click() Pritemdykite kaip sveikąjį skaičių a = 10 Jei i = 0 Į 2 veiksmą MsgBox "Vertė yra i yra: " & i Next End Sub

Kai aukščiau pateiktas kodas sukompiliuojamas ir vykdomas, jis sukuria tokią išvestį.

Vertė yra i: 0
i reikšmė yra: 2
i reikšmė yra: 4
i vertė yra: 6
i vertė yra: 8
Vertė yra i: 10

Kelis kartus vykdo teiginių seką ir sutrumpina kodą, valdantį ciklo kintamąjį.

už ... kilpą

Kiekviena kilpa naudojama kiekvienam masyvo ar kolekcijos elementui vykdyti sakiniui arba teiginių grupei.

Kiekvienai kilpai yra panašus į For Loop; tačiau ciklas vykdomas kiekvienam masyvo ar grupės elementui. Todėl tokio tipo kilpoje žingsnių skaitiklio nebus. Jis pirmiausia naudojamas su masyvais arba failų sistemos objektų kontekste, kad veiktų rekursyviai.

Sintaksė

Toliau pateikiama VBA ciklo „For Every“ sintaksė.

Kiekvienam elementui grupėje....Kitas

pavyzdys

Private Sub Constant_demo_Click() "vaisiai yra masyvas vaisiai = Array("obuoliai", "apelsinai", "vyšnios") Neryškūs vaisių pavadinimai Kaip variantas "iteruojantis naudojant Kiekvienai kilpai. Kiekvienam vaisiuose esančiam elementui vaisių pavadinimai = vaisių pavadinimai & prekės & Chr(10) Kitas MsgBox vaisių pavadinimai Pabaiga

Kai vykdomas aukščiau pateiktas kodas, jis išspausdina visus vaisių pavadinimus su vienu elementu kiekvienoje eilutėje.

obuolys
oranžinė
vyšnios

Tai atliekama, jei grupėje yra bent vienas elementas, ir kartojama kiekvienam grupės elementui.

o..Wend kilpa

Cikloje While... Wend, jei sąlyga yra True, visi teiginiai vykdomi tol, kol aptinkamas Wend raktinis žodis.

Jei sąlyga klaidinga, ciklas baigiasi ir valdiklis pereina prie kito teiginio po raktinio žodžio Wend.

Sintaksė

Toliau pateikiama VBA ciklo While..Wend sintaksė.

Nors sąlyga (-os) ... Wend

Struktūrinė schema

pavyzdys

Privatus sub Constant_demo_Click() Pritemdytas skaitiklis: skaitiklis = 10, kol skaitiklis< 15 " Test value of Counter. Counter = Counter + 1 " Increment Counter. msgbox "The Current Value of the Counter is: " & Counter Wend " While loop exits if Counter Value becomes 15. End Sub

Kai aukščiau pateiktas kodas bus vykdomas, pranešimo lauke bus išvesta ši informacija.

Dabartinė skaitiklio vertė yra: 11
Dabartinė skaitiklio vertė yra: 12
Dabartinė skaitiklio vertė yra: 13
Dabartinė skaitiklio vertė yra: 14
Dabartinė skaitiklio vertė yra: 15

Tai patikrina būklę prieš vykdydama kilpos pagrindą.

do..while loop

A Do ... while ciklas naudojamas, kai norime pakartoti teiginių rinkinį, kai sąlyga yra teisinga. Būklę galima patikrinti ciklo pradžioje arba ciklo pabaigoje.

Sintaksė

Žemiau pateikiama VBA ciklo Do...While sintaksė.

Do Nors sąlyga......Cilpa

Struktūrinė schema

pavyzdys

Toliau pateiktame pavyzdyje naudojama Do ... while ciklas, kad patikrintų būseną ciklo pradžioje. Ciklo viduje esantys teiginiai vykdomi tik tuo atveju, jei sąlyga tampa True.

Private Sub Constant_demo_Click() Do While i< 5 i = i + 1 msgbox "The value of i is: " & i Loop End Sub

i reikšmė yra: 1
i reikšmė yra: 2
i reikšmė yra: 3
i reikšmė yra: 4
i reikšmė yra: 5

Alternatyvi sintaksė

Taip pat yra alternatyvi „Do... while“ sintaksė, kuri tikrina būseną ciklo pabaigoje. Pagrindinis skirtumas tarp šių dviejų sintaksių paaiškinamas kitame pavyzdyje.

Ar ... ... Ciklas, kol sąlyga

pavyzdys

Šiame pavyzdyje naudojama Do ... while ciklas, kad patikrintų būseną ciklo pabaigoje. Ciklo teiginiai vykdomi bent kartą, net jei sąlyga yra klaidinga.

Privatus sub Constant_demo_Click() i = 10 Do i = i + 1 MsgBox "I reikšmė yra: " & i Ciklas, kol i< 3 "Condition is false.Hence loop is executed once. End Sub

Kai vykdomas aukščiau pateiktas kodas, pranešimų laukelyje išspausdinama tokia išvestis.

i reikšmė yra: 11

Do..While teiginiai bus vykdomi tol, kol sąlyga bus True. (T.y.) Ciklas turi būti kartojamas tol, kol sąlyga bus False.

daryti..intil kilpa

Ciklas „do... intil“ nebus naudojamas, kai norime pakartoti teiginių rinkinį, kai sąlyga klaidinga. Būklę galima patikrinti ciklo pradžioje arba ciklo pabaigoje.

Sintaksė

Žemiau yra Do..Until ciklo sintaksė VBA.

Daryti iki sąlygos ... ... Kilpa

Struktūrinė schema

pavyzdys

Šiame pavyzdyje naudojama Do... Before Loop, kad patikrintų sąlygą ciklo pradžioje. Ciklo viduje esantys teiginiai vykdomi tik tuo atveju, jei sąlyga yra klaidinga. Jis išeina iš ciklo, kai sąlyga tampa teisinga.

Private Sub Constant_demo_Click() i = 10 Do Until i>15 "Sąlyga yra klaidinga. Taigi ciklas bus vykdomas i = i + 1 msgbox ("I reikšmė yra: " & i) Ciklo pabaiga

Kai vykdomas aukščiau pateiktas kodas, pranešimų laukelyje išspausdinama tokia išvestis.

i reikšmė yra: 11
i reikšmė yra: 12
i reikšmė yra: 13
i reikšmė yra: 14
i reikšmė yra: 15
i reikšmė yra: 16

Alternatyvi sintaksė

Taip pat yra alternatyvi sintaksė Do... Before Loop, kuri tikrina ciklo pabaigos sąlygą. Pagrindinis skirtumas tarp šių dviejų sintaksių paaiškinamas toliau pateiktame pavyzdyje.

Ar ... ... Kilpa iki būklės

Struktūrinė schema

pavyzdys

Šiame pavyzdyje naudojama Do...Before ciklo sąlyga ciklo pabaigoje patikrinti. Ciklo teiginiai vykdomi bent kartą, net jei sąlyga yra True.

Private Sub Constant_demo_Click() i = 10 Do i = i + 1 msgbox "I reikšmė yra: " & i Loop Until i more15 "Sąlyga yra teisinga. Taigi ciklas vykdomas vieną kartą. Pabaiga

Kai vykdomas aukščiau pateiktas kodas, pranešimų laukelyje išspausdinama tokia išvestis.

i reikšmė yra: 11

Do..Iki teiginiai bus vykdomi tol, kol sąlyga yra klaidinga. (I.E.) Ciklas turi būti kartojamas tol, kol sąlyga bus teisinga.

Ciklo kontrolės įrašai

Ciklo valdymo sakiniai pakeičia vykdymą iš įprastos sekos. Kai vykdymas palieka sritį, visi kiti ciklo sakiniai nevykdomi.

Kontrolės pareiškimas ir aprašymas

Operatoriaus išėjimas

Exit for naudojamas, kai norime išeiti iš For Loop pagal tam tikrus kriterijus. Kai vykdomas Exit For, valdiklis perkeliamas į kitą sakinį iškart po ciklo For.

Sintaksė

Žemiau yra išėjimo iš pareiškimo sintaksė VBA.

Struktūrinė schema

pavyzdys

Šiame pavyzdyje naudojamas Exit For. Jei skaitiklis pasiekia 4, For Loop baigiasi ir valdiklis pereina prie kito teiginio iš karto po For Loop.

Private Sub Constant_demo_Click() Pritemdyti kaip sveikąjį skaičių a = 10 Jei i = 0 2 veiksmui "i yra skaitiklio kintamasis ir jis padidinamas 2 MsgBox ("Reikšmė yra i yra: " & i) Jei i = 4, tada i = i * 10 "Tai vykdoma tik jei i=4 MsgBox ("Reikšmė yra i yra: " & i) Išeiti, kai "Išeinama, kai i=4 Pabaiga Jei Kitas Pabaiga Sub

Kai vykdomas aukščiau pateiktas kodas, pranešimų laukelyje išspausdinama tokia išvestis.

Vertė yra i: 0
i reikšmė yra: 2
i reikšmė yra: 4
i vertė yra: 40

Nutraukia For ciklo sakinį ir perkelia vykdymą į sakinį iškart po ciklo

Išeiti Do

Exit Do pareiškimas naudojamas, kai norime išeiti iš Do Loops pagal tam tikrus kriterijus. Jis gali būti naudojamas tiek Do Do...While, tiek Do...Before kilpose.

Kai vykdomas Exit Do, valdymas pereina į kitą sakinį iškart po Do ciklo.

Sintaksė

Toliau pateikiama VBA teiginio Exit Do sintaksė.

pavyzdys

Šiame pavyzdyje naudojamas Exit Do. Jei skaitiklis pasiekia 10, Do išvesties eilutė baigiasi ir valdymas pereina į kitą teiginį iš karto po For Loop.

Privatus sub Constant_demo_Click() i = 0 Do While i<= 100 If i >10 Tada Išeiti Do " Ciklas išeina, jei i> 10 End If MsgBox ("I reikšmė yra: " & i) i = i + 2 Ciklo pabaiga

Kai vykdomas aukščiau pateiktas kodas, pranešimų laukelyje išspausdinama tokia išvestis.

i reikšmė yra: 0
i reikšmė yra: 2
i reikšmė yra: 4
i reikšmė yra: 6
i reikšmė yra: 8
i reikšmė yra: 10

Užbaigia Do While sakinį ir perkelia vykdymą į sakinį iškart po ciklo