for ցիկլերը

C++ում բացի while ցիկլերից կան նաև for ցիկլեր, որոնք ավելի շատ հնարավորություններ են տալիս հենց ցիկլի տողի մեջ գործողություններ անելու։ Եթե while-ը ուղղակի ստուգում էր պայմանը և պայմանի կատարման դեպքում կատարվում էր ձևավոր փակագծերի մեջինը, ապա for-ի միջոցով հնարավոր է որոշ գործողություններ անել հենց ցիկլի տողի մեջ։
 
for-ի ու while-ի տարբերությունը հասկանալու համար կարող ենք դիտարկել երկու ծրագիր, որոնք անում են լրիվ նույն բանը՝
#include <iostream>
using namespace std;

int main() {
	cout << "Before the cycle! ";

	int n = 0;
	while (n < 10) {
		cout << n << endl;
		n++;  // նույնն է ինչ n += 1
	}

	cout << endl;
	cout << "After the cycle!";
	return 0;
}
#include <iostream>
using namespace std;

int main() {
	cout << "Before the cycle! ";

	for (int n = 0; n < 10; n++) {
		cout << n << endl;
	}

	cout << endl;
	cout << "After the cycle!";
	return 0;
}
Երկու ծրագիրն էլ տպում են
Before the cycle! 0 1 2 3 4 5 6 7 8 9
After the cycle!
Երկուսն էլ հայտարարում են int տիպի n փոփոխական և վերագրում դրան 0, որից հետո մտնում ցիկլի մեջ և ամեն անգամ տպում n-ը ու մեծացնում n-ի արժեքը 1-ով։
 
for ցիկլը ունի 3 մաս՝ for (ցիկլից առաջ կատարվող գործողություն; պայման որը ստուգում է ամեն ցիկլի սկզբից առաջ; ամեն ցիկլի վերջում կատարվող գործողություն) բոլոր 3 մասերը բաժանվում են իրարից ;ով։
  • Ցիկլից առաջ կատարվող գործողությունը կարող է լինել ցանկացած բան - փոփոխականի հայտարարում, կամ փոփոխականին արժեքի վերագրում, կամ նման ցանկացած գործողություն։
  • Պայման, որը ստուգում է ամեն ցիկլի սկզբից առաջ լրիվ while-ի կամ if նման է ու կարող է ունենալ տարբեր քանակի ստուգումներ || կամ &&-ով իրարից բաժանված։
  • Ամեն ցիկլի վերջում կատարվող գործողությունը կրկին կարող է լինել ցանկացած գործողություն - օրինակ՝ փոփոխականին արժեքի վերագրում, կամ արժեքի մեծացում, կամ բաժանում մեկ այլ թվի վրա և այլն։
Իսկ ձևավոր փակագծերից ներս կարող ենք կատարել ցանկացած տիպի գործողություն (լրիվ while-ի նման)։
 
Վարժություն՝
Մուտքում տրված է 2 թիվ՝ a և b։ Անհրաժեշտ է իրարից բացատով բաժանված տպել [a; b] միջակայքում ընկած բոլոր զույգ թվերը։
Մուտք
Ելք
3 6
4 6
 

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue