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