switch...case-statement in C (voorbeelden)

Wat is Switch Statement in C?

Schakelverklaring in C test de waarde van een variabele en vergelijkt deze met meerdere gevallen. Zodra de case-match is gevonden, wordt een blok instructies uitgevoerd die bij die specifieke case horen.

Elk geval in een blok van een schakelaar heeft een andere naam/nummer dat een identifier wordt genoemd. De door de gebruiker opgegeven waarde wordt vergeleken met alle gevallen in het schakelblok totdat de overeenkomst is gevonden.

Als een case-match NIET wordt gevonden, wordt de standaardopdracht uitgevoerd en gaat de besturing uit het schakelblok.

In deze tutorial leer je-

Syntaxis van hoofdlettergebruik

Een algemene syntaxis van hoe switch-case wordt geïmplementeerd in een 'C'-programma is als volgt: |__+_|

  • De uitdrukking kan een gehele uitdrukking of een karakteruitdrukking zijn.
  • Waarde-1, 2, n zijn dooslabels die worden gebruikt om elk geval afzonderlijk te identificeren. Onthoud dat hoofdletterlabels niet hetzelfde mogen zijn, omdat dit een probleem kan veroorzaken tijdens het uitvoeren van een programma. Stel dat we twee gevallen hebben met hetzelfde label als '1'. Terwijl het programma wordt uitgevoerd, wordt het geval dat als eerste verschijnt uitgevoerd, ook al wilt u dat het programma een tweede geval uitvoert. Dit zorgt voor problemen in het programma en levert niet de gewenste output op.
  • Caselabels eindigen altijd met een dubbele punt ( : ). Elk van deze gevallen is gekoppeld aan een blok.
  • Een blok is niets anders dan meerdere instructies die zijn gegroepeerd voor een bepaald geval.
  • Telkens wanneer de switch wordt uitgevoerd, wordt de waarde van test-expressie vergeleken met alle gevallen die we in de switch hebben gedefinieerd. Stel dat de testuitdrukking waarde 4 bevat. Deze waarde wordt vergeleken met alle gevallen tot en met het geval waarvan label vier in het programma wordt gevonden. Zodra een geval is gevonden, wordt het blok met instructies dat bij dat specifieke geval hoort, uitgevoerd en gaat de controle uit de schakelaar.
  • Het break-sleutelwoord geeft in elk geval het einde van een bepaald geval aan. Als we de breuk niet in elk geval plaatsen, zal de schakelaar in C, ook al wordt het specifieke geval uitgevoerd, doorgaan met het uitvoeren van alle gevallen totdat het einde is bereikt. Dit mag niet gebeuren; daarom moeten we in elk geval altijd het break-sleutelwoord plaatsen. Break zal de zaak beëindigen zodra deze is uitgevoerd en de besturing zal uit de schakelaar vallen.
  • De standaardcase is een optionele. Wanneer de waarde van test-expressie niet overeenkomt met een van de gevallen in de switch, wordt de standaard uitgevoerd. Anders is het niet nodig om default in de switch te schrijven.
  • Zodra de switch is uitgevoerd, gaat de besturing naar de instructie-x en gaat de uitvoering van een programma verder.

Stroomschemadiagram van schakelkast

Het volgende diagram illustreert hoe een geval wordt geselecteerd in een schakelkast:

Hoe Switch werkt



como recuperar fotos excluídas no galaxy s5

Schakelvoorbeeld in C

Het volgende programma illustreert het gebruik van schakelaar: |_+_|

Uitgang: |__+_|

  1. In het gegeven programma hebben we uitgelegd dat een variabele num met waarde 8 is geïnitialiseerd.
  2. Een switch-constructie wordt gebruikt om de waarde die is opgeslagen in variabele num te vergelijken en het blok met instructies uit te voeren dat is gekoppeld aan de overeenkomende case.
  3. In dit programma, aangezien de waarde die is opgeslagen in variabele num acht is, zal een schakelaar de case uitvoeren waarvan het case-label 8 is. Na het uitvoeren van de case valt de besturing uit de schakelaar en wordt het programma beëindigd met het succesvolle resultaat door afdrukken van de waarde op het uitvoerscherm.

Probeer de waarde van variabele num te veranderen en merk de verandering in de uitvoer op.

We beschouwen bijvoorbeeld het volgende programma dat standaard is: |_+_|

Uitgang: |__+_|

Bij het werken met schakelkast in C groepeert u meerdere kasten met unieke labels. U moet aan het einde van een switch-instructie in elk geval een break-instructie invoeren om te vertakken.

De optionele standaardcase wordt uitgevoerd wanneer er geen andere overeenkomsten zijn gemaakt.

We beschouwen de volgende switch-instructie: |_+_|

Uitgang: |__+_|

Geneste schakelaar in C

In C kunnen we een binnenste schakelaar hebben ingebed in een buitenste schakelaar. Ook kunnen de gevalconstanten van de binnenste en buitenste schakelaar gemeenschappelijke waarden hebben en zonder enige conflicten.

We beschouwen het volgende programma waarin de gebruiker zijn eigen ID moet typen, als het ID geldig is, zal het hem vragen zijn wachtwoord in te voeren, als het wachtwoord correct is, zal het programma de naam van de gebruiker afdrukken, anders zal het programma Onjuist afdrukken Wachtwoord en als de ID niet bestaat, zal het programma Onjuiste ID afdrukken |_+_|

UITGANG: |__+_|

  1. In het gegeven programma hebben we geïnitialiseerde twee variabelen uitgelegd: ID en wachtwoord
  2. Een buitenste schakelaarconstructie wordt gebruikt om de waarde te vergelijken die is ingevoerd in variabele ID. Het voert het blok met instructies uit dat is gekoppeld aan het overeenkomende geval (wanneer ID==500).
  3. Als de blokinstructie wordt uitgevoerd met de overeenkomende case, wordt een interne schakelaar gebruikt om de waarden die zijn ingevoerd in het variabele wachtwoord te vergelijken en de instructies uit te voeren die zijn gekoppeld aan de overeenkomende case (wanneer wachtwoord==000).
  4. Anders zal de switch case de standaard case activeren en de juiste tekst met betrekking tot het programmaoverzicht afdrukken.

Waarom hebben we een Switch-case nodig?

Er is één potentieel probleem met de if-else-instructie, namelijk dat de complexiteit van het programma toeneemt wanneer het aantal alternatieve paden toeneemt. Als u meerdere if-else-constructies in het programma gebruikt, kan een programma moeilijk leesbaar en begrijpelijk worden. Soms kan het zelfs de ontwikkelaar verwarren die het programma zelf heeft geschreven.

De oplossing voor dit probleem is de switch-statement.

Regels voor switch-statement:

  • Een expressie moet altijd een resultaat opleveren.
  • Caselabels moeten constant en uniek zijn.
  • Caselabels moeten eindigen met een dubbele punt ( : ).
  • In elk geval moet een break-trefwoord aanwezig zijn.
  • Er kan slechts één standaardlabel zijn.
  • We kunnen meerdere switch-statements nesten.

Samenvatting

  • Een schakelaar is een beslissingsconstructie in 'C.'
  • Een schakelaar wordt gebruikt in een programma waarbij meerdere beslissingen betrokken zijn.
  • Een switch moet een uitvoerbare test-expressie bevatten.
  • Elke case moet een break-trefwoord bevatten.
  • Caselabel moet constant en uniek zijn.
  • De standaard is optioneel.
  • Meerdere switch-statements kunnen in elkaar worden genest.