٠ا ٠ع٠ÙÙØ§ ÙÛØ§Ø² دارÛÙ Ú©Ù Ú©Ø§Ø±ÙØ§ ر٠تکرار Ú©ÙÛÙ .
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ Ú©Ø§ÙØ§ÙاÛÛ Ø±Ø§ از ÛÚ© ÙÛØ³Øª ÛÚ©Û Ù¾Ø³ از دÛÚ¯Ø±Û ÙÙ Ø§ÛØ´ دÙÛÙ ÛØ§ کد ٠شابÙÛ Ø±Ù Ø¨Ø±Ø§Û ÙØ± عدد از 1 تا 10 اجرا Ú©ÙÛÙ .
ØÙÙÙ ÙØ§ راÙÛ Ø¨Ø±Ø§Û ØªÚ©Ø±Ø§Ø± ÛÚ© کد Ø¨Ø±Ø§Û ÚÙØ¯Û٠بار ÙØ³ØªÙد.
ØÙÙÙ âwhileâ
Ø§Ø¹ÙØ§ÙÛ Ø¨Ø±Ø§Û Ø®ÙØ§ÙÙØ¯ÙâÙØ§Û Ù¾ÛØ´Ø±ÙتÙ.
اÛÙ Ù
ÙØ§Ù٠تÙÙØ§ ØÙÙÙâÙØ§Û پاÛÙâØ§Û Ø±Ø§ Ù¾ÙØ´Ø´ Ù
ÛâØ¯ÙØ¯: whileØ do..while Ù for(..;..;..).
اگر ش٠ا Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬ÙÛ Ø§ÙÙØ§Ø¹ دÛگر ØÙÙ٠ب٠اÛÙ Ù ÙØ§Ù٠آ٠دÙâØ§ÛØ¯Ø اÛÙØ¬Ø§ Ø§Ø´Ø§Ø±Ø§ØªÛ Ø¨Ù Ø¢ÙâÙØ§ را دارÛÙ :
- ØÙÙÙ forâ¦in را Ø¨Ø±Ø§Û ØÙÙ٠زد٠در ÙÛÚÚ¯ÛâÙØ§Û Ø´ÛØ¡ ببÛÙÛØ¯.
- ØÙÙÙ forâ¦of Ù iterables را Ø¨Ø±Ø§Û ØÙÙ٠زد٠در آراÛÙâÙØ§ Ù Ø´ÛØ¡ÙØ§Û ØÙÙÙâÙ¾Ø°ÛØ± ببÛÙÛØ¯.
در ØºÛØ± اÛÙ ØµÙØ±ØªØ ÙØ·Ùا Ø®ÙØ§Ùد٠را ادا٠٠دÙÛØ¯.
ØÙÙÙ while سÛÙØªÚ©Ø³ Ø²ÛØ± را دارد:
while (condition) {
// کد
// Ø¨Ù Ø§ØµØ·ÙØ§Ø "بدÙÙ ØÙÙÙ"
}
تا ÙÙØªÛ Ú©Ù condition truthy Ø¨Ø§Ø´Ø¯Ø Ú©Ø¯ ÙØ³Ù
ت بدÙÙ ØÙÙ٠اجرا Ù
Û Ø´ÙØ¯.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ ØÙÙ٠پاÛÛÙ i را تا ÙÙØªÛ Ú©Ù i < 3 Ø¨Ø§Ø´Ø¯Ø ÙÙ
Ø§ÛØ´ Ù
Û Ø¯ÙØ¯:
let i = 0;
while (i < 3) { // 0 را ÙÙ
Ø§ÛØ´ Ù
Û Ø¯ÙØ¯Ø سپس 1Ø Ø³Ù¾Ø³ 2
alert( i );
i++;
}
ÛÚ© بار اجرا شد٠بدÙÙ ØÙÙ٠را ÛÚ© تکرار Ù Û ÙØ§Ù ÙØ¯. ØÙÙÙ Ø¯Ø§Ø®Ù Ù Ø«Ø§Ù Ø¨Ø§ÙØ§ س٠تکرار Ù Û Ø³Ø§Ø²Ø¯.
اگر i++ از Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ جا Ù
Û Ù
Ø§ÙØ¯Ø ØÙÙÙ (در ØªØ¦ÙØ±Û) Ø¨Ø±Ø§Û ÙÙ
ÛØ´Ù اجرا Ù
Û Ø´Ø¯. در عÙ
ÙØ Ù
Ø±ÙØ±Ú¯Ø± Ø±Ø§Ù ÙØ§ÛÛ Ø±Ø§ Ø¨Ø±Ø§Û Ù
تÙÙ٠کرد٠ÚÙÛÙ ØÙÙÙ ÙØ§ÛÛ Ù
ÙÛØ§ Ù
Û Ú©ÙØ¯Ø ٠در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت سÙ
ت Ø³Ø±ÙØ±Ø Ù
ا Ù
Û ØªÙØ§ÙÛÙ
ÙØ±Ø§ÛÙØ¯ را ÙØ§Ø¨Ùد Ú©ÙÛÙ
.
ÙØ± عبارت ÛØ§ Ù
ØªØºÛØ±Û Ù
Û ØªÙØ§Ùد ÛÚ© شرط ØÙÙÙ Ø¨Ø§Ø´Ø¯Ø ÙÙ ÙÙØ· Ù
ÙØ§ÛØ³Ù ÙØ§: شرط ØªÙØ³Ø· while Ø§Ø±Ø²ÛØ§Ø¨Û Ù
Û Ø´ÙØ¯ ٠ب٠boolean تبدÛÙ Ù
Û Ø´ÙØ¯.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ ÛÚ© Ø±Ø§Ù Ú©ÙØªØ§Ù تر Ø¨Ø±Ø§Û ÙÙØ´ØªÙ while (i != 0) while (i) است:
let i = 3;
while (i) { // ÙÙØªÛ Ú©Ù i برابر با 0 Ø´ÙØ¯Ø شرط falsy Ø´Ø¯ÙØ Ù ØÙÙÙ Ù
تÙÙÙ Ù
Û Ø´ÙØ¯
alert( i );
i--;
}
اگر بدÙÙ ØÙÙÙ ÛÚ© Ø¯Ø³ØªÙØ± ÙØ§ØØ¯ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ù
ا Ù
Û ØªÙØ§ÙÛÙ
Ø¢Ú©ÙÙØ§Ø¯Ùا {...} را ØØ°Ù Ú©ÙÛÙ
:
let i = 3;
while (i) alert(i--);
ØÙÙÙ âdoâ¦whileâ
Ø¨Ø±Ø±Ø³Û Ø´Ø±Ø· با Ø§Ø³ØªÙØ§Ø¯Ù از سÛÙØªÚ©Ø³ do..while Ù
Û ØªÙØ§Ùد ب٠پاÛÛ٠بدÙÙ ØÙÙÙ Ù
ÙØªÙÙ Ø´ÙØ¯.
do {
// بدÙÙ ØÙÙÙ
} while (condition);
ØÙÙ٠اÙ٠بدÙ٠را اجرا Ù Û Ú©ÙØ¯Ø سپس شرط را Ø¨Ø±Ø±Ø³Û Ù Û Ú©ÙØ¯Ø ٠تا ÙÙØªÛ Ú©Ù truthy Ø¨Ø§Ø´Ø¯Ø Ø¯ÙØ¨Ø§Ø±Ù Ù Ø¯ÙØ¨Ø§Ø±Ù Ø¢Ù(بدÙÙ) را اجرا Ù Û Ú©ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let i = 0;
do {
alert( i );
i++;
} while (i < 3);
اÛ٠شک٠از سÛÙØªÚ©Ø³ Ø¨Ø§ÛØ¯ ÙÙØ· زÙ
اÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯ Ú©Ù Ø´Ù
ا Ø¨Ø®ÙØ§ÙÛØ¯ بدÙÙ ØÙÙÙ Ø¬Ø¯Ø§Û Ø§Ø² اÛÙک٠شرط truthy باشد ØØ¯Ø§ÙÙ ÛÚ© بار اجرا Ø´ÙØ¯. Ù
عÙ
ÙÙØ§Ø شک٠دÛگر ØªØ±Ø¬ÛØ داد٠Ù
Û Ø´ÙØ¯: while(...) {...}.
ØÙÙÙ âforâ
ØÙÙÙ for Ù¾ÛÚÛØ¯Ù تر Ø§Ø³ØªØ Ø§Ù
ا اÛÙ ØÙÙÙ Ø¨ÛØ´ØªØ±ÛÙ Ø§Ø³ØªÙØ§Ø¯Ù را ÙÙ
دارد.
اÛÙØ·Ùر Ø¨Ù ÙØ¸Ø± Ù Û Ø±Ø³Ø¯:
for (begin; condition; step) {
// ... بدÙÙ ØÙÙÙ ...
}
Ø¨ÛØ§ÛÛØ¯ Ù
عÙÛ Ø§ÛÙ ÙØ³Ù
ت ÙØ§ را با Ù
Ø«Ø§Ù ÛØ§Ø¯ Ø¨Ú¯ÛØ±ÛÙ
. ØÙÙÙ Ø²ÛØ± alert(i) را Ø¨Ø±Ø§Û ÙØ± i از 0 تا 3 (Ø®ÙØ¯ 3 شاÙ
Ù ÙÙ
Û Ø´ÙØ¯) اجرا Ù
Û Ú©ÙØ¯:
for (let i = 0; i < 3; i++) { // 0 را ÙÙ
Ø§ÛØ´ Ù
Û Ø¯ÙØ¯Ø سپس 1Ø Ø³Ù¾Ø³ 2
alert(i);
}
Ø¨ÛØ§ÛÛØ¯ Ø´Ø±Ø for را ÙØ³Ù
ت Ø¨Ù ÙØ³Ù
ت Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ
:
| ÙØ³Ù ت | ||
|---|---|---|
| begin(آغاز) | i = 0 |
Ø¨Ù Ù ØØ¶ ÙØ±Ùد ب٠ØÙÙ٠اجرا Ù Û Ø´ÙØ¯. |
| condition(شرط) | i < 3 |
ÙØ¨Ù از ÙØ± تکرار ØÙÙÙ Ø¨Ø±Ø±Ø³Û Ù Û Ø´ÙØ¯. اگر false باشد ØÙÙ٠٠تÙÙÙ Ù Û Ø´ÙØ¯. |
| body(بدÙÙ) | alert(i) |
تا ز٠اÙÛ Ú©Ù Ø´Ø±Ø· truthy باشد ÙÙ ÚÙØ§Ù اجرا Ù Û Ø´ÙØ¯. |
| step(ÙØ¯Ù ) | i++ |
در ÙØ± تکرار بعد از بدÙ٠اجرا Ù Û Ø´ÙØ¯. |
اÙÚ¯ÙØ±Ûت٠کÙÛ ØÙÙÙ Ù Ø«Ù ÙØ³Ù ت پاÛÛ٠کار Ù Û Ú©ÙØ¯:
begin را اجرا Ú©Ù
â (if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù)
â (if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù)
â (if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù)
â ...
ÛØ¹ÙÛ Ø§ÛÙÚ©ÙØ begin ÛÚ© بار اجرا Ù
Û Ø´ÙØ¯Ø ٠سپس اÛ٠تکرار Ù
Û Ø´ÙØ¯: بعد از ÙØ± بار آزÙ
Ø§ÛØ´ conditionØ body Ù step اجرا Ù
Û Ø´ÙÙØ¯.
اگر ش٠ا تاز٠با ØÙÙÙ ÙØ§ Ø¢Ø´ÙØ§ Ø´Ø¯ÛØ¯Ø Ø¨Ù Ù Ø«Ø§Ù Ø¨Ø±Ú¯Ø±Ø¯ÛØ¯ ٠٠راØÙ Ø§Ø¬Ø±Ø§Û Ø¢Ù Ø±Ø§ ٠رØÙ٠ب٠٠رØÙ٠رÙÛ ÛÚ© کاغذ بازتÙÙÛØ¯ Ú©ÙÛØ¯.
در Ù ÙØ±Ø¯ Ù Ø§Ø Ø¯ÙÛÙØ§ اÛÙ Ø§ØªÙØ§Ù Ù Û Ø§ÙØªØ¯:
// for (let i = 0; i < 3; i++) alert(i)
// begin را اجرا Ú©Ù
let i = 0
// if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù
if (i < 3) { alert(i); i++ }
// if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù
if (i < 3) { alert(i); i++ }
// if condition â body را اجرا Ú©Ù Ù step را اجرا Ú©Ù
if (i < 3) { alert(i); i++ }
// ...Ù¾Ø§ÛØ§ÙØ ÚÙÙ ØØ§Ùا i == 3
اÛÙØ¬Ø§Ø Ù
ØªØºÛØ± âØ´Ù
Ø§Ø±ÙØ¯Ùâ i دÙÛÙØ§ داخ٠ØÙÙ٠تعرÛ٠شد٠است. اÛÙ ÛÚ© تعرÛÙ âØ¯Ø±Ù٠خطÛâ Ù
ØªØºÛØ± ÙØ§Ù
ÛØ¯Ù Ù
Û Ø´ÙØ¯. اÛÙ ÚÙÛÙ Ù
ØªØºÛØ±ÙاÛÛ ØªÙÙØ§ داخ٠ØÙÙÙ ÙØ§Ø¨Ù رÙÛØª ÙØ³ØªÙد.
for (let i = 0; i < 3; i++) {
alert(i); // 0, 1, 2
}
alert(i); // Ø§Ø±ÙØ±Ø ÚÙÛÙ Ù
ØªØºÛØ±Û ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯
٠ا Ù Û ØªÙØ§ÙستÛÙ Ø¨Ù Ø¬Ø§Û ØªØ¹Ø±Û٠کرد٠ÛÚ© Ù ØªØºÛØ±Ø از ÛÚ© Ù ØªØºÛØ± Ù ÙØ¬Ùد Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ :
let i = 0;
for (i = 0; i < 3; i++) { // Ø§Ø³ØªÙØ§Ø¯Ù از ÛÚ© Ù
ØªØºÛØ± Ù
ÙØ¬Ùد
alert(i); // 0, 1, 2
}
alert(i); // 3Ø ÙØ§Ø¨Ù Ø¯ÛØ¯Ù Ø§Ø³ØªØ ÚÙÙ Ø¨ÛØ±Ù٠از ØÙÙ٠تعرÛ٠شد٠است
ÙØ³Ù ت ÙØ§Û ÙØ§Ø¨Ù جا Ø§ÙØ¯Ø§Ø®ØªÙ
ÙØ± ÙØ³Ù
ت for را Ù
Û ØªÙØ§Ù از ÙÙÙ
Ø§ÙØ¯Ø§Ø®Øª.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ اگر ÙÛØ§Ø² Ø¨Ù Ø§ÙØ¬Ø§Ù
Ú©Ø§Ø±Û Ø¯Ø± آغاز ØÙÙÙ ÙØ¯Ø§Ø´ØªÙ باشÛÙ
Ù
Û ØªÙØ§ÙÛÙ
begin را ØØ°Ù Ú©ÙÛÙ
.
٠ث٠اÛÙØ¬Ø§:
let i = 0; // Ù
ا i را دارÛÙ
ک٠از ÙØ¨Ù تعرÛÙ Ø´Ø¯Ù Ù ØªØ®ØµÛØµ داد٠شد٠است.
for (; i < 3; i++) { // ÙÛØ§Ø²Û ب٠"begin" ÙÛØ³Øª
alert( i ); // 0, 1, 2
}
ÙÙ
ÚÙÛÙ Ù
ا Ù
Û ØªÙØ§ÙÛÙ
ÙØ³Ù
ت step را ØØ°Ù Ú©ÙÛÙ
:
let i = 0;
for (; i < 3;) {
alert( i++ );
}
اÛ٠کار ØÙÙ٠را برابر با while (i < 3) Ù
Û Ú©ÙØ¯.
در ÙØ§Ùع ٠ا Ù Û ØªÙØ§ÙÛÙ ÙÙ Ù ÚÛØ² را ØØ°Ù Ú©ÙÛÙ Ø ÛÚ© ØÙÙÙ Ø¨Û ÙÙØ§Ûت بسازÛÙ :
for (;;) {
// بدÙÙ Ù
ØØ¯ÙØ¯ÛØª تکرار Ù
Û Ø´ÙØ¯
}
ÙØ·Ùا در ÙØ¸Ø± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù ÙØ± د٠ÙÙØ·Ù ÙÛØ±Ú¯ÙÙ ; داخ٠for Ø¨Ø§ÛØ¯ ÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÙØ¯. در ØºÛØ± اÛÙ ØµÙØ±ØªØ ÛÚ© سÛÙØªÚ©Ø³ Ø§Ø±ÙØ± Ø¨Ù ÙØ¬Ùد Ø®ÙØ§Ùد Ø¢Ù
د.
٠تÙÙ٠کرد٠ØÙÙÙ
Ø¨Ù Ø·ÙØ± ٠ع٠ÙÙØ ÛÚ© ØÙÙ٠ز٠اÙÛ Ú©Ù Ø´Ø±Ø· Ø¢Ù falsy Ø´ÙØ¯ ٠تÙÙÙ Ù Û Ø´ÙØ¯.
اÙ
ا Ù
ا Ù
Û ØªÙØ§ÙÛÙ
با Ø§Ø³ØªÙØ§Ø¯Ù از Ø¯Ø³ØªÙØ± خاص break آ٠را در ÙØ± ÙØØ¸Ù Ù
Ø¬Ø¨ÙØ± ب٠تÙÙÙ Ú©ÙÛÙ
.
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ ØÙÙÙ Ø²ÛØ± از کاربر ÛÚ© Ø³Ø±Û Ø¹Ø¯Ø¯ Ø¯Ø±Ø®ÙØ§Ø³Øª Ù Û Ú©ÙØ¯Ø ٠ز٠اÙÛ Ú©Ù ÙÛÚ Ø¹Ø¯Ø¯Û ÙØ§Ø±Ø¯ ÙØ´Ø¯ â٠تÙÙÙ Ù Û Ø´ÙØ¯â:
let sum = 0;
while (true) {
let value = +prompt("ÛÚ© عدد ÙØ§Ø±Ø¯ Ú©ÙÛØ¯", '');
if (!value) break; // (*)
sum += value;
}
alert( 'Ù
جÙ
ÙØ¹: ' + sum );
اگر کاربر ÛÚ© خط خاÙÛ ÙØ§Ø±Ø¯ Ú©ÙØ¯ ÛØ§ ÙØ±ÙØ¯Û Ø±Ø§ ÙØºÙ Ú©ÙØ¯ Ø¯Ø³ØªÙØ± break در خط (*) ÙØ¹Ø§Ù Ù
Û Ø´ÙØ¯. ØÙÙ٠را Ø¨ÙØ§ÙاصÙÙ Ù
تÙÙÙ Ù
Û Ú©ÙØ¯Ø Ù Ú©ÙØªØ±Ù را ب٠اÙÙÛ٠خط بعد از ØÙÙÙ Ù
Û Ø³Ù¾Ø§Ø±Ø¯. ÛØ¹ÙÛØ alert.
ØªØ±Ú©ÛØ¨ âØÙÙÙ Ø¨Û ÙÙØ§Ûت + break در ØµÙØ±Øª ÙÛØ§Ø²â Ø¨Ø±Ø§Û Ù
ÙÙØ¹Ûت ÙØ§ÛÛ Ú©Ù ÛÚ© شرط ØÙÙÙ ÙØ¨Ø§Ûد در آغاز ÛØ§ Ø§ÙØªÙØ§Û ØÙÙÙ Ø¨Ø±Ø±Ø³Û Ø´ÙØ¯Ø بÙک٠در ÙØ³Ø· ÛØ§ ØØªÛ ÚÙØ¯ Ø¬Ø§Û Ø¨Ø¯ÙÙ Ø¢Ù Ø¨Ø±Ø±Ø³Û Ø´ÙØ¯ عاÙÛ Ø§Ø³Øª.
ادا٠٠داد٠ب٠تکرار بعدÛ
Ø¯Ø³ØªÙØ± continue ÛÚ© âÙØ³Ø®Ù سبک ØªØ±â Ø§Ø² break است. ØÙÙ٠را Ù
تÙÙÙ ÙÙ
Û Ú©ÙØ¯. در Ø¹ÙØ¶Ø تکرار ØØ§Ù ØØ§Ø¶Ø± را Ù
تÙÙÙ Ù
Û Ú©ÙØ¯ Ù ØÙÙ٠را Ù
Ø¬Ø¨ÙØ± Ù
Û Ú©ÙØ¯ Ú©Ù ÛÚ© تکرار Ø¬Ø¯ÛØ¯ را Ø´Ø±ÙØ¹ Ú©ÙØ¯ (اگر شرط Ø§Ø¬Ø§Ø²Ù Ø¯ÙØ¯).
٠ا Ù Û ØªÙØ§ÙÛ٠در ØµÙØ±ØªÛ ک٠با تکرار ØØ§Ù ØØ§Ø¶Ø± کار٠ا٠ت٠ا٠شد٠باشد Ù Ø¨Ø®ÙØ§ÙÛ٠ب٠تکرار Ø¨Ø¹Ø¯Û Ø¨Ø±ÙÛ٠از Ø¢Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ .
ØÙÙ٠پاÛÛ٠از continue ÙÙØ· Ø¨Ø±Ø§Û ÙØ´Ø§Ù داد٠Ù
ÙØ¯Ø§Ø±ÙØ§Û ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù Ù
Û Ú©ÙØ¯.
for (let i = 0; i < 10; i++) {
// اگر true Ø¨Ø§Ø´Ø¯Ø ÙØ³Ù
ت باÙÛ Ù
Ø§ÙØ¯Ù بدÙ٠را از ÙÙÙ
Ø¨ÙØ¯Ø§Ø²
if (i % 2 == 0) continue;
alert(i); // 1Ø Ø³Ù¾Ø³ 9 Ø7 Ø5 Ø3
}
Ø¨Ø±Ø§Û Ù
ÙØ¯Ø§Ø± ÙØ§Û Ø²ÙØ¬ iØ Ø¯Ø³ØªÙØ± continue اجرا کرد٠بدÙ٠را Ù
تÙÙÙ Ù
Û Ú©ÙØ¯ Ù Ú©ÙØªØ±Ù را ب٠تکرار Ø¨Ø¹Ø¯Û for Ù
Û Ø¯ÙØ¯ (ب٠ÙÙ
را٠عدد بعدÛ). پس alert ÙÙØ· Ø¨Ø±Ø§Û Ù
ÙØ¯Ø§Ø±ÙØ§Û ÙØ±Ø¯ صدا زد٠Ù
Û Ø´ÙØ¯.
continue ب٠کÙ
کرد٠ت٠در ØªÙ Ø¨ÙØ¯Ù Ú©Ù
Ú© Ù
Û Ú©ÙØ¯ÛÚ© ØÙÙ٠ک٠اعداد ÙØ±Ø¯ را ÙÙ Ø§ÛØ´ Ù Û Ø¯ÙØ¯ Ù Û ØªÙØ§Ùست اÛÙØ·Ùر باشد:
for (let i = 0; i < 10; i++) {
if (i % 2) {
alert( i );
}
}
از Ø¯ÛØ¯Ú¯Ø§Ù ÙÙÛØ اÛ٠شبÛÙ Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ است. Ù
سÙÙ
Ø§Ø Ù
ا Ù
Û ØªÙØ§ÙÛÙ
کد را داخ٠ÛÚ© بÙÙÚ© if بگذارÛÙ
Ø¨Ù Ø¬Ø§Û Ø§ÛÙک٠از continue Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
اÙ
ا ب٠عÙÙØ§Ù ÛÚ© Ø¹Ø§Ø±Ø¶Ù Ø¬Ø§ÙØ¨ÛØ ÛÚ© Ø³Ø·Ø Ø¨ÛØ´ØªØ±Û از ØªÙØ¯Ø±ØªÙÛÛ Ù
Û Ø³Ø§Ø²Ø¯ (صدا زد٠alert داخ٠آکÙÙØ§Ø¯Ùا). اگر کد داخ٠if Ø¨ÛØ´ØªØ± از ÚÙØ¯ خط Ø¨Ø§Ø´Ø¯Ø Ù
Ù
ک٠است Ø®ÙØ§ÙاÛÛ Ú©ÙÛ Ø±Ø§ Ú©Ø§ÙØ´ Ø¯ÙØ¯.
break/continue در سÙ
ت راست â?âÙØ·Ùا در ÙØ¸Ø± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù Ø³Ø§Ø®ØªØ§Ø±ÙØ§Û سÛÙØªÚ©Ø³ ک٠عبارت ÙÛØ³ØªÙد ÙÙ
Û ØªÙØ§ÙÙØ¯ با عÙ
Ùگر ternary ? Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙÙØ¯. Ø¨Ù Ø®ØµÙØµØ Ø¯Ø³ØªÙØ±ÙاÛÛ Ù
ث٠break/continue Ù
جاز ÙÛØ³ØªÙد.
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ اگر ٠ا اÛ٠کد را در ÙØ¸Ø± Ø¨Ú¯ÛØ±ÛÙ :
if (i > 5) {
alert(i);
} else {
continue;
}
â¦Ù آ٠را با Ø§Ø³ØªÙØ§Ø¯Ù از Ø¹ÙØ§Ù ت Ø³ÙØ§Ù Ø¯ÙØ¨Ø§Ø±Ù بÙÙÛØ³ÛÙ :
(i > 5) ? alert(i) : continue; // continue اÛÙØ¬Ø§ Ù
جاز ÙÛØ³Øª
â¦Ù تÙÙÙ Ù Û Ø´ÙØ¯: ÚÙÙ ÛÚ© سÛÙØªÚ©Ø³ Ø§Ø±ÙØ± ÙØ¬Ùد دارد.
اÛÙ ÛÚ© دÙÛ٠دÛÚ¯Ø±Û Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù Ùکرد٠از عÙ
Ùگر Ø¹ÙØ§Ù
ت Ø³ÙØ§Ù ? Ø¨Ù Ø¬Ø§Û if است.
Ø¨Ø±ÚØ³Ø¨ ÙØ§ÛÛ Ø¨Ø±Ø§Û break/continue
Ø¨Ø¹Ø¶Û Ø§ÙÙØ§Øª ٠ا ÙÛØ§Ø² دارÛ٠ک٠از ÚÙØ¯ ØÙÙ٠ت٠در ت٠ب٠ÛÚ© بار٠خارج Ø´ÙÛÙ .
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ در کد پاÛÛÙ Ù
ا با i Ù j ØÙÙÙ Ù
Û Ø²ÙÛÙ
Ø Ù Ø¨Ø±Ø§Û Ù
ختصات ÙØ§Û (i, j) از (0,0) تا (2,2) prompt Ù
Û Ú©ÙÛÙ
:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`Ù
ÙØ¯Ø§Ø± در Ù
تخصات (${i},${j})`, '');
// اگر Ù
ا Ø¨Ø®ÙØ§ÙÛÙ
از اÛÙØ¬Ø§ ب٠تÙ
اÙ
(پاÛÛÙ) خارج Ø´ÙÛÙ
Ú٠کار Ú©ÙÛÙ
Ø
}
}
alert('تÙ
اÙ
!');
٠ا ب٠راÙÛ ÙÛØ§Ø² دارÛÙ Ú©Ù ÙØ±Ø§ÛÙØ¯ را در ØµÙØ±ØªÛ ک٠کاربر ÙØ±ÙØ¯Û Ø±Ø§ ÙØºÙ Ú©ÙØ¯ ٠تÙÙÙ Ú©ÙÛÙ .
break Ù
عÙ
ÙÙÛ Ø¨Ø¹Ø¯ از input ÙÙØ· ØÙÙ٠داخÙÛ Ø±Ø§ Ù
تÙÙÙ Ù
Û Ú©ÙØ¯. اÛ٠کاÙÛ ÙÛØ³Øª â Ø¨Ø±Úسب ÙØ§Ø ب٠کÙ
Ú© Ù
Û Ø¢ÛÙØ¯!
ÛÚ© Ø¨Ø±ÚØ³Ø¨ ٠شخص Ú©ÙÙØ¯Ù Ø§Û Ø§Ø³Øª Ú©Ù ÙØ¨Ù از ÛÚ© ØÙÙÙ Ù٠را٠د٠ÙÙØ·Ù Ù Û Ø¢ÛØ¯:
labelName: for (...) {
...
}
Ø¯Ø³ØªÙØ± break <labelName> در ØÙÙ٠پاÛÛÙ Ø¨Ù Ø¨Ø±ÚØ³Ø¨ Ù
ÙØ±Ø¯ ÙØ¸Ø± Ù
Û Ø±Ø³Ø¯:
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
let input = prompt(`Ù
ÙØ¯Ø§Ø± در Ù
ختصات (${i},${j})`, '');
// اگر ÛÚ© رشت٠خاÙÛ ÙØ§Ø±Ø¯ Ø´ÙØ¯ ÛØ§ ÙØºÙ Ø´ÙØ¯Ø سپس از ÙØ± د٠ØÙÙ٠خارج Ø´Ù
if (!input) break outer; // (*)
// ÛÚ© Ú©Ø§Ø±Û Ø¨Ø§ Ù
ÙØ¯Ø§Ø± Ø§ÙØ¬Ø§Ù
بدÙ...
}
}
alert('تÙ
اÙ
!');
در کد Ø¨Ø§ÙØ§Ø break outer Ø¨Ø±Ø§Û Ù¾ÛØ¯Ø§ Ú©Ø±Ø¯Ù Ø¨Ø±ÚØ³Ø¨ outer Ø¨Ø§ÙØ§ را جست ٠ج٠Ù
Û Ú©ÙØ¯ ٠از Ø¢Ù ØÙÙ٠خارج Ù
Û Ø´ÙØ¯.
پس Ú©ÙØªØ±Ù Ø¨Ù ØµÙØ±Øª Ù
سÙÛÙ
از (*) ب٠alert('تÙ
اÙ
!') Ù
Û Ø±Ø³Ø¯.
ÙÙ ÚÙÛ٠٠ا Ù Û ØªÙØ§ÙÛÙ Ø¨Ø±ÚØ³Ø¨ را ب٠ÛÚ© خط جداگاÙÙ Ù ÙØªÙÙ Ú©ÙÛÙ :
outer:
for (let i = 0; i < 3; i++) { ... }
Ø¯Ø³ØªÙØ± continue ÙÙ
Ù
Û ØªÙØ§Ùد ب٠ÙÙ
Ø±Ø§Ù Ø¨Ø±ÚØ³Ø¨ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯. در اÛÙ Ù
ÙØ±Ø¯Ø Ø§Ø¬Ø±Ø§Û Ú©Ø¯ ب٠تکرار Ø¨Ø¹Ø¯Û Ø§Ø² ØÙÙÙ Ø¨Ø±ÚØ³Ø¨ زد٠شد٠Ù
Û Ø±ÙØ¯.
Ø¨Ø±ÚØ³Ø¨ ÙØ§ ب٠٠ا اجاز٠ÙÙ Û Ø¯ÙÙØ¯ Ú©Ù Ø¨Ù Ø¬Ø§Û Ø¯ÙØ®ÙاÙÛ Ø§Ø² کد بپرÛÙ .
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ Ø§ÙØ¬Ø§Ù داد٠اÛ٠کار ØºÛØ± ٠٠ک٠است:
break label; // پرش Ø¨Ù Ø¨Ø±ÚØ³Ø¨ پاÛÛÙ (کار ÙÙ
Û Ú©ÙØ¯)
label: for (...)
ÛÚ© Ø¯Ø³ØªÙØ± break Ø¨Ø§ÛØ¯ در داخ٠بÙÙÚ© کد باشد. از ÙØ¸Ø± ÙÙÛØ آ٠بÙÙÚ© Ù
Û ØªÙØ§Ùد ÙØ± بÙÙÚ© کد Ø¨Ø±ÚØ³Ø¨ زد٠باشد
label: {
// ...
break label; // کار Ù
Û Ú©ÙØ¯
// ...
}
â¦Ø§Ú¯Ø±ÚÙØ %99.9 Ù
ÙØ§Ùع break در داخ٠ØÙÙÙ ÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù
Û Ø´ÙØ¯Ø ÙÙ
Ø§ÙØ·Ùر ک٠در Ù
Ø«Ø§Ù ÙØ§Û Ø¨Ø§ÙØ§ Ø¯ÛØ¯ÛÙ
.
ÛÚ© continue ÙÙØ· Ù
Û ØªÙØ§Ùد در داخ٠ØÙÙ٠باشد.
Ø®ÙØ§ØµÙ
٠ا س٠ÙÙØ¹ ØÙÙ٠را Ù¾ÙØ´Ø´ دادÛÙ :
whileâ Ø´Ø±Ø· ÙØ¨Ù از ÙØ± تکرار Ø¨Ø±Ø±Ø³Û Ù Û Ø´ÙØ¯.do..whileâ Ø´Ø±Ø· بعد از ÙØ± تکرار Ø¨Ø±Ø±Ø³Û Ù Û Ø´ÙØ¯.for (;;)â Ø´Ø±Ø· ÙØ¨Ù از ÙØ± تکرار Ø¨Ø±Ø±Ø³Û Ù Û Ø´ÙØ¯Ø ØªÙØ¸Û٠ات Ø¨ÛØ´ØªØ± Ù٠٠٠ک٠است.
Ø¨Ø±Ø§Û Ø³Ø§Ø®Øª ÛÚ© ØÙÙÙ âØ¨Û ÙÙØ§ÛØªâØ Ù
عÙ
ÙÙØ§ ساختار while(true) Ø§Ø³ØªÙØ§Ø¯Ù Ù
Û Ø´ÙØ¯. ÚÙÛÙ ØÙÙÙ Ø§ÛØ درست Ù
Ø«Ù ÙØ± ØÙÙÙØ Ù
Û ØªÙØ§Ùد با Ø¯Ø³ØªÙØ± break Ù
تÙÙÙ Ø´ÙØ¯.
اگر Ù
ا ÙØ®ÙاÙÛÙ
ک٠در تکرار ØØ§Ù ØØ§Ø¶Ø± Ú©Ø§Ø±Û Ú©ÙÛÙ
Ù Ø¯ÙØ³Øª داشت٠باشÛÙ
ک٠ب٠تکرار Ø¨Ø¹Ø¯Û Ø¨Ø±ÙÛÙ
Ø Ù
Û ØªÙØ§ÙÛÙ
از Ø¯Ø³ØªÙØ± continue Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
break/continue از Ø¨Ø±ÚØ³Ø¨ ÙØ§Û ÙØ¨Ù از ØÙÙÙ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
Û Ú©ÙÙØ¯. ÛÚ© Ø¨Ø±ÚØ³Ø¨ تÙÙØ§ را٠break/continue Ø¨Ø±Ø§Û ÙØ±Ø§Ø± از ÛÚ© ØÙÙ٠ت٠در ØªÙ Ù Ø±ÙØªÙ ب٠ØÙÙÙ Ø¨ÛØ±ÙÙÛ Ø§Ø³Øª.
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)