Baseline Widely available
СводкаÐнÑÑÑÑкÑÐ¸Ñ switch ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²ÑÑажение Ñо ÑлÑÑаÑми, пеÑеÑиÑленнÑми внÑÑÑи неÑ, а заÑем вÑполнÑÐµÑ ÑооÑвеÑÑÑвÑÑÑие инÑÑÑÑкÑии.
СинÑакÑиÑswitch (expression) { case value1: //ÐдеÑÑ Ð²ÑполнÑÑÑÑÑ Ð¸Ð½ÑÑÑÑкÑии, еÑли ÑезÑлÑÑÐ°Ñ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñавен value1 [break;] case value2: //ÐнÑÑÑÑкÑии, ÑооÑвеÑÑÑвÑÑÑие value2 [break;] ... case valueN: //ÐнÑÑÑÑкÑии, ÑооÑвеÑÑÑвÑÑÑие знаÑÐµÐ½Ð¸Ñ valueN //statementsN [break;] default: //ÐдеÑÑ Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð¸Ð½ÑÑÑÑкÑии, коÑоÑÑе вÑполнÑÑÑÑÑ Ð¿Ñи оÑÑÑÑÑÑвии ÑооÑвеÑÑÑвÑÑÑего знаÑÐµÐ½Ð¸Ñ //statements_def [break;] }
expression
ÐÑÑажение, знаÑение коÑоÑого ÑÑавниваеÑÑÑ Ñо вÑеми ÑлÑÑаÑми.
case valueN
СлÑÑай, коÑоÑÑй пÑовеÑÑеÑÑÑ Ð½Ð° ÑооÑвеÑÑÑвие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (expression
).
statementsN
ÐнÑÑÑÑкÑии, коÑоÑÑе вÑполнÑÑÑÑÑ, еÑли expression
ÑооÑвеÑÑÑвÑÑÑ ÑлÑÑаÑ.
statements_def
ÐнÑÑÑÑкÑии, вÑполнÑемÑе еÑли expression
не ÑооÑвеÑÑÑвÑÐµÑ Ð½Ð¸ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑлÑÑаÑ.
ÐÑли вÑÑажение ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ°ÐºÐ¾Ð¼Ñ-Ñо ÑлÑÑаÑ, Ñо вÑполнÑÑÑÑÑ Ð¸Ð½ÑÑÑÑкÑии ÑÑого ÑлÑÑаÑ. ÐÑли неÑколÑко ÑлÑÑаев ÑооÑвеÑÑÑвÑÑÑ Ð·Ð½Ð°ÑениÑ, ÑолÑко пеÑвÑй ÑлÑÑай бÑÐ´ÐµÑ Ð¸ÑполÑзован.
СнаÑала пÑогÑамма пÑÑаеÑÑÑ Ð½Ð°Ð¹Ñи подÑ
одÑÑий ÑлÑÑай, знаÑение коÑоÑого Ñавно знаÑÐµÐ½Ð¸Ñ Ð¸Ñкомого вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (иÑполÑзÑеÑÑÑ ÑÑÑогое ÑÑавнение, ===)
и заÑем вÑполнÑÐµÑ Ð¸Ð½ÑÑÑÑкÑии, ÑооÑвеÑÑÑвÑÑÑие ÑлÑÑаÑ. ÐÑли подÑ
одÑÑего ÑлÑÑÐ°Ñ Ð½ÐµÑ, иÑеÑÑÑ ÑлÑÑай по ÑмолÑÐ°Ð½Ð¸Ñ (default
), коÑоÑÑй не ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм. ÐÑли ÑлÑÑÐ°Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½ÐµÑ, вÑполнение пÑодолжаеÑÑÑ Ð½Ð° инÑÑÑÑкÑии, ÑледÑÑÑей ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле switch
. Ðо ÑоглаÑениÑ, ÑлÑÑай default
опиÑÑваеÑÑÑ Ð¿Ð¾Ñледним, но ÑÑо не ÑвлÑеÑÑÑ ÑÑÑогим пÑавилом.
ÐпÑионалÑÐ½Ð°Ñ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ break
вÑполнÑÐµÑ Ð²ÑÑ
од из блока switch
. Ðна Ð¼Ð¾Ð¶ÐµÑ ÑаÑполагаÑÑÑÑ Ð² каждом из ÑлÑÑаев, но не ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑной. ÐÑли ÐµÑ Ð½ÐµÑ, Ñо вÑполнÑеÑÑÑ ÑледÑÑÑÐ°Ñ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ Ð¸Ð· блока switch
.
switch
Ð ÑÑом пÑимеÑе, еÑли expr
Ñавно "Bananas", пÑогÑамма наÑ
Ð¾Ð´Ð¸Ñ ÑлÑÑай "Bananas" и вÑполнÑÐµÑ ÑооÑвеÑÑÑвÑÑÑие инÑÑÑÑкÑии. ÐÑи вÑполнении инÑÑÑÑкÑии break
, вÑполнение пÑодолжиÑÑÑ Ð·Ð° пÑеделами switch
. ÐÑли Ð±Ñ break
не бÑло, Ñо вÑполнилиÑÑ Ð±Ñ Ð¸Ð½ÑÑÑÑкÑии ÑлÑÑÐ°Ñ "Cherries".
switch (expr) {
case "Oranges":
console.log("Oranges are $0.59 a pound.");
break;
case "Apples":
console.log("Apples are $0.32 a pound.");
break;
case "Bananas":
console.log("Bananas are $0.48 a pound.");
break;
case "Cherries":
console.log("Cherries are $3.00 a pound.");
break;
case "Mangoes":
case "Papayas":
console.log("Mangoes and papayas are $2.79 a pound.");
break;
default:
console.log("Sorry, we are out of " + expr + ".");
}
console.log("Is there anything else you'd like?");
ÐÑимеÑ: ЧÑо ÑлÑÑиÑÑÑ, еÑли не иÑполÑзоваÑÑ break?
ÐÑли Ð²Ñ Ð½Ðµ иÑполÑзовали инÑÑÑÑкÑÐ¸Ñ break
, Ñо бÑдÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð¸Ð½ÑÑÑÑкÑии ÑледÑÑÑего ÑлÑÑаÑ. РпÑовеÑка на ÑооÑвеÑÑÑвие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ.
var foo = 0;
switch (foo) {
case -1:
console.log("negative 1");
break;
case 0: // foo Ñавно 0, ÑлÑÑай ÑооÑвеÑÑÑвÑÐµÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ ÑÑи инÑÑÑÑкÑии бÑдÑÑ Ð²ÑполненÑ
console.log(0);
// ÐÐ ÐÐÐЧÐÐÐÐ: здеÑÑ Ð¼Ð¾Ð³Ð»Ð° наÑ
одиÑÑÑÑ Ð·Ð°Ð±ÑÑÐ°Ñ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ break
case 1: // Ð ÑлÑÑае 'case 0:' не бÑло break, инÑÑÑÑкÑии данного ÑлÑÑÐ°Ñ Ñакже бÑдÑÑ Ð²ÑполненÑ
console.log(1);
break; // РконÑе ÑаÑположен break, поÑÑÐ¾Ð¼Ñ Ð²Ñполнение не пеÑейдÑÑ Ðº ÑлÑÑÐ°Ñ 'case 2:'
case 2:
console.log(2);
break;
default:
console.log("default");
}
ЦепоÑки case Ðдна опеÑаÑиÑ
ÐÑÐ¾Ñ Ð¼ÐµÑод иÑполÑзÑÐµÑ ÑÐ¾Ñ ÑакÑ, ÑÑо поÑле case
Ð½ÐµÑ Ð¿ÑеÑÑÐ²Ð°Ð½Ð¸Ñ Ð¸ пÑодолжиÑÑÑ Ð²Ñполнение ÑледÑÑÑего case
незавиÑимо Ð¾Ñ Ñого, ÑооÑвеÑÑÑвÑÐµÑ Ð»Ð¸ case
пÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ð¾Ð¼Ñ ÑÑловиÑ. ÐодÑобнее в пÑимеÑе "ЧÑо ÑлÑÑиÑÑÑ, еÑли не иÑполÑзоваÑÑ break?.
ÐÑо пÑÐ¸Ð¼ÐµÑ case
Ñ Ð¾Ð´Ð½Ð¾Ð¹ опеÑаÑией, где ÑеÑÑÑе ÑазнÑÑ
знаÑÐµÐ½Ð¸Ñ Ð¾ÑÑабаÑÑваÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾.
var Animal = "Giraffe";
switch (Animal) {
case "Cow":
case "Giraffe":
case "Dog":
case "Pig":
console.log("This animal is not extinct.");
break;
case "Dinosaur":
default:
console.log("This animal is extinct.");
}
ЦепоÑка опеÑаÑий
ÐÑо пÑÐ¸Ð¼ÐµÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑвеннÑÑ
опеÑаÑий внÑÑÑи case
, где в завиÑимоÑÑи Ð¾Ñ Ð¿ÑедоÑÑавленного ÑиÑла можно ÑвидеÑÑ ÑазнÑй вÑвод. ÐдеÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑÑÑ, ÑÑо опеÑаÑии оÑÑабаÑÑваÑÑ Ð² Ñом поÑÑдке, в коÑоÑом ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ case
. ÐÑи ÑÑом ÑиÑÐ»Ð¾Ð²Ð°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑоблÑдаÑÑÑÑ. Также возможно пÑимеÑаÑÑ Ð² case
ÑÑÑоки.
var foo = 1;
var output = "Output: ";
switch (foo) {
case 0:
output += "So ";
case 1:
output += "What ";
output += "Is ";
case 2:
output += "Your ";
case 3:
output += "Name";
case 4:
output += "?";
console.log(output);
break;
case 5:
output += "!";
console.log(output);
break;
default:
console.log("Please pick a number from 0 to 5!");
}
ÐÑвод ÑÑого пÑимеÑа:
ÐнаÑение Ðогfoo
is NaN
or not 1
, 2
, 3
, 4
, 5
, or 0
Please pick a number from 0 to 5! 0
Output: So What Is Your Name? 1
Output: What Is Your Name? 2
Output: Your Name? 3
Output: Name? 4
Output: ? 5
Output: ! СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4