Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Цикли (частина 2). Цикли "While", "Do", "Do...While", "Do...Until"

Невизначені цикли

Існують два основні способи створення невизначеного циклу. Можна побудувати цикл так, що VBA буде тестувати деяку умову, або перед виконанням циклу, або після виконання циклу, або всередині самого циклу.


While

Цикл While буде виконуватись до того часу поки значення відповідають його умові

Синтаксис While:

While [Умова]
	[Тіло циклу]
Wend 

While - оголошує початок циклу

[умова] - будь-яка умова яка повертає булеве значення True або False

[Тіло циклу] - один, кілька або жодного оператора VBA, які будуть виконуватись при виконанні циклу

Wend - повідомляє VBA про те, що досягнутий кінець циклу, й повертається на його початок доки при [умові] не буде отриману значення False

Приклади застосування

Приклад 1:

Потрібно вивести суму усіх значень від 1 до 5

Sub example1 ()
	Dim i as Integer, MySum as Integer
		MySum = 0
		i = 0
		MySum = 0
        While i <= 5
            MySum = MySum + i
            i = i + 1
        Wend
		MsgBox MySum
End Sub 

Відповідь: 15


Do

Цикл Do виконує вказані дії

Синтаксис Do:

Do
	[Тіло циклу]
Loop 

Do - оголошує початок циклу

[Тіло циклу] - один, кілька або жодного оператора VBA, які будуть виконуватись при виконанні циклу

Loop - повідомляє VBA про те, що досягнутий кінець циклу, й повертається на його початок

але цикл такої конструкції буде виконуватись вічно, тому потрібно додати оператор "If" та скористатись командою "Exit Do"

Приклади застосування

Приклад 1:

Потрібно вивести суму усіх значень від 1 до 5

Sub example1()
	Dim i As Integer, MySum As Integer
		i = 0
		MySum = 0
			Do				
				If i > 4 Then Exit Do
				i = i + 1
				MySum = MySum + i
			Loop
		MsgBox MySum
End Sub 

Відповідь: 15, так як значення i = 5 при виході із циклу


Do...While

Цикл даної конструкції, тестує свою умову до початку виконання циклу й працює поки дана умова повертає значення True.

Синтаксис Do...While:

Do While [Умова]
	[Тіло циклу]
Loop 

[Умова] - логічне вираз для детермінанта циклу

[Тіло циклу] - один, жодного або кілька операторів, які складають тіло циклу

Loop - ключове слово, вказує на закінчення тіла циклу і позначає місце, з якого VBA повертається в початок циклу для перевірки умови доки [Умова] не повернення значення False, що буде означати закінчення циклу й перейде до виконання наступного рядка коду після Loop

Зверніть увагу! Якщо логічний вираз дорівнює False при першому виконанні циклу Do While, то VBA відразу переходить до виконання наступного рядка коду після Loop, а оператори, що знаходяться в [Тілі циклу] відповідно пропускаються. Іншими словами кажучи, цикл Do While дозволяє ні разу не виконувати оператори всередині нього.

Приклади застосування

Приклад 1:

Потрібно вивести суму усіх значень від 1 до 5

Sub example1()
	Dim i As Integer, MySum As Integer
		i = 0
		MySum = 0
			Do While i < 5
				i = i + 1
				MySum = MySum + i
			Loop
		MsgBox MySum
End Sub 

Відповідь: 15

Приклад 2:

Потрібно вивести суму усіх значень від 1 до 5

Для тестування [Умови] після виконання [Тіла циклу] треба помістити логічне вираз в кінець блоку операторів, після ключового слова Loop, яке повідомляє про кінець циклу. Так [Тіло циклу] буде виконано як мінімум 1 раз

Sub example1()
	Dim i As Integer, MySum As Integer
		i = 0
		MySum = 0
			Do
				i = i + 1
				MySum = MySum + i
			Loop While i = 5
		MsgBox MySum
End Sub 

Відповідь: 15


Do...Until

Ще один цикл, який тестує умову до виконання циклу й працює поки дана умова не поверне значення True.

Синтаксис Do...Until:

Do Until [Умова]
	[Тіло циклу]
Loop 

[Умова] - логічне вираз для детермінанта циклу

[Тіло циклу] - один, жодного або кілька операторів, які складають тіло циклу

Loop - ключове слово, вказує на закінчення тіла циклу і позначає місце, з якого VBA повертається в початок циклу для перевірки умови

VBA виконує цикл поки логічне вираження, представлене за допомогою [Умова], так само False.

В іншому цикл Do Until повністю аналогічний циклу Do While.

Приклади застосування

Приклад 1:

Потрібно вивести суму усіх значень від 1 до 5

Sub example1()
	Dim i As Integer, MySum As Integer
		i = 0
		MySum = 0
			Do Until i = 5
				i = i + 1
				MySum = MySum + i
			Loop
		MsgBox MySum
End Sub 

Відповідь: 15

Приклад 2:

Потрібно вивести суму усіх значень від 1 до 5

Для тестування [Умови] після виконання [Тіла циклу] треба помістити логічне вираз в кінець блоку операторів, після ключового слова Loop, яке повідомляє про кінець циклу. Так [Тіло циклу] буде виконано як мінімум 1 раз

Sub example1()
	Dim i As Integer, MySum As Integer
		i = 0
		MySum = 0
			Do
				i = i + 1
				MySum = MySum + i
			Loop Until i = 5
		MsgBox MySum
End Sub 

Відповідь: 15


Слід сказати, що представлені вище приклади дані чисто в пізнавальних цілях, щоб можна було зрозуміти саму суть організації невизначених циклів з перевіркою умов до і після виконання тіла циклу. Сама ж гнучкість невизначених циклів тут явно не проглядається.


view615like0dislike0 avatard_l4w clock 2016-04-21 22:17

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com