Det JavaScript switch-erklæring evaluerer et udtryk og udfører en kodeblok baseret på matchende tilfælde. Det giver et alternativ til lange if-else-kæder, hvilket forbedrer læsbarheden og vedligeholdelsen, især ved håndtering af flere betingede grene.
Indholdsfortegnelse
- Skift erklæringssyntaks
- Hvordan Switch Statement fungerer
- Flowchart af Switch Statement
- Almindelige kodeblokke
Skift erklæringssyntaks
switch (expression) { case value1: // code block 1; break; case value2: // code block 2; break; ... default: // default code block; }>
-
Expression>
er den værdi, du vil sammenligne. Case value1>
,case value2>
osv., repræsenterer de mulige værdier afexpression>
.break>
erklæring afslutterswitch>
udmelding. Uden den vil eksekveringen fortsætte i næste sag.Default>
angiver den kode, der skal køres, hvis ingen af tilfældene matcherexpression>
.
Hvordan Switch Statement fungerer
- Evaluering : Udtrykket inde i
switch>
redegørelsen vurderes én gang. - Sammenligning : Værdien af udtrykket sammenlignes med hver
case>
mærke (ved at bruge streng lighed===>
). - Udførelse : Hvis der findes et match, følger den tilsvarende kodeblok efter matchningen
case>
etiketten udføres. Hvis der ikke findes noget match, springer udførelsen tildefault>
case (hvis til stede) eller fortsætter med den næste erklæring efterswitch>
blok. - Pauseerklæring : Efter at have udført en kodeblok, vil den
break>
erklæring afslutterswitch>
erklæring, hvilket forhindrer, at fuldbyrdelse falder igennem til efterfølgende sager. Hvisbreak>
er udeladt, vil udførelsen fortsætte til næste sag (kendt som gennemfald). - Standard sag : Det
default>
sagen er valgfri. Hvis der ikke findes noget match, kodeblokken underdefault>
er henrettet.
Flowchart af Switch Statement
Eksempel på skifteerklæring:
Her udskriver vi dagens navn på dag 3.
Javascript let day = 3; let dayName; switch (day) { case 1: dayName = 'Monday'; break; case 2: dayName = 'Tuesday'; break; case 3: dayName = 'Wednesday'; break; case 4: dayName = 'Thursday'; break; case 5: dayName = 'Friday'; break; case 6: dayName = 'Saturday'; break; case 7: dayName = 'Sunday'; break; default: dayName = 'Invalid day'; } console.log(dayName); // Output: Wednesday>
Produktion
Wednesday>
Forklaring:
Day>
er indstillet til3>
.- Det
switch>
erklæring vurdererday>
. - Siden
day>
er3>
, detcase 3>
blokken udføres, tildeling'Wednesday'>
tildayName>
. - Det
break>
erklæring afslutterswitch>
erklæring, der forhindrer eksekvering i at fortsætte i andre sager.
Eksempel på skifteerklæring:
Her vil vi tjekke vores karakter ved at bruge en afbryderkasse.
Javascript
let grade = 'B'; let result; switch (grade) { case 'A': result = 'A (Excellent)'; break; case 'B': result = 'B (Average)'; break; case 'C': result = 'C (Below than average)'; break; default: result = 'No Grade'; } console.log(result);>
Produktion
B (Average)>
Forklaring:
Grade>
tildeles værdien'B'>
.- Det
switch>
erklæring vurderer værdien afgrade>
. - Siden
grade>
er'B'>
, kodeblokken eftercase 'B':>
er henrettet. - Det
result>
variablen tildeles strengen'B (Average)'>
. - Det
break>
erklæring afslutterswitch>
udmelding. result>
logges til konsollen, som udsender'B (Average)'>
.
Bryd søgeord
Detbreak>
nøgleordet bruges til at afslutte udførelsen af en loop eller enswitch>
udmelding.
verilog sagsfremstilling
standard søgeord
Detdefault>
søgeordet bruges inden for enswitch>
erklæring som en reservemulighed, når ingen af decase>
udtryk matcher den værdi, der evalueres. Det virker på samme måde somelse>
erklæring i enif...else>
kæde, hvilket giver en standardhandling, der skal udføres, når ingen andre specifikke tilfælde matcher.
Placeringen af standardsagen er ligegyldig:
Uanset dens placering, bliver standardsagen kun eksekveret, hvis ingen af de andre sagsbetingelser er opfyldt. Så at sætte det i begyndelsen, midten eller slutningen ændrer ikke kernelogikken (medmindre du bruger en mindre almindelig teknik kaldet gennemfald).
vi udskriver standardkassen.
JavaScript let day = 8; let dayName; switch (day) { default: dayName = 'Invalid day'; break; case 1: dayName = 'Monday'; break; case 2: dayName = 'Tuesday'; break; case 3: dayName = 'Wednesday'; break; case 4: dayName = 'Thursday'; break; case 5: dayName = 'Friday'; break; case 6: dayName = 'Saturday'; break; case 7: dayName = 'Sunday'; break; } console.log(dayName);>
Produktion
Invalid day>
Fælles kodeblokke
I nogle tilfælde skal vi bruge den samme kode til flere switch cases. Lad os se et eksempel på, hvordan man gør det:
Almindelige kodeblokke Eksempel:
Her vil vi samme kodeblokke for to forskellige switch cases.
Javascript let grade = 'A' let result; switch (grade) { case 'A': result = 'Grade is excellent' break; case 'B': result = 'Grade is good' break; case 'C': result = 'Grade is Average ' break; case 'D': result = 'Grade is Poor' break; default: text = 'NO grades achieved'; } console.log(result)>
Produktion
Grade is excellent>
Forklaring:
Grade>
tildeles værdien'A'>
.- Det
switch>
erklæring vurderer værdien afgrade>
. - Siden
grade>
Tændstikker'A'>
, kodeblokken eftercase 'A':>
udføres, indstillingresult>
til'Grade is excellent'>
. - Det
break>
erklæring afslutterswitch>
udmelding. Result>
logges til konsollen, som udsender'Grade is excellent'>
.
Bemærk: Hvis flere switch cases matcher en værdi, udføres den første.