Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

switch ... case in C (Switch Statement in C) met voorbeelden

Wat is Switch Statement in C?

Switch-instructie 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-

  • Wat is Switch Statement in C?
  • Schakel hoofdlettersyntaxis om
  • Switch-overzichtsstroomdiagram
  • Schakelvoorbeeld in C
  • Nested Switch in C
  • Waarom hebben we een Switch-case nodig?
  • Regels voor switch-statement

Schakel hoofdlettersyntaxis om

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

switch( expression )
{
	case value-1:
			Block-1;
			Break;
	case value-2:
			Block-2;
			Break;
	case value-n:
			Block-n;
			Break;
	default:
			Block-1;
			Break;
}
Statement-x;
  • 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.
  • Hoofdletterlabels eindigen altijd met een dubbele punt ( :). Elk van deze gevallen is gekoppeld aan een blokkering.
  • Een blok is niets anders dan meerdere instructies die zijn gegroepeerd voor een bepaald geval.
  • Telkens wanneer de schakelaar wordt uitgevoerd, wordt de waarde van test-expressie vergeleken met alle gevallen die we binnen de schakelaar 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 casus is gevonden, wordt het blok met instructies die bij die specifieke casus horen, uitgevoerd en wordt de controle uitgeschakeld.
  • 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.
  • Het standaard hoofdlettergebruik is optioneel. 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 standaard in de schakelaar te schrijven.
  • Zodra de omschakeling is uitgevoerd, gaat de besturing naar de instructie-x en gaat de uitvoering van een programma verder.

Switchoverzicht stroomschema

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

Schakelvoorbeeld in C

Het volgende programma illustreert het gebruik van de schakelaar:

#include <stdio.h>
    int main() {
        int num = 8;
        switch (num) {
            case 7:
                printf("Value is 7");
                break;
            case 8:
                printf("Value is 8");
                break;
            case 9:
                printf("Value is 9");
                break;
            default:
                printf("Out of range");
                break;
        }
        return 0;
    }

Uitvoer:

Value is 8

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

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:

#include <stdio.h>
int main() {
int language = 10;
  switch (language) {
  case 1:
    printf("C#\n");
    break;
  case 2:
    printf("C\n");
    break;
  case 3:
    printf("C++\n");
    break;
  default:
    printf("Other programming language\n");}}

Uitvoer:

Other programming language

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.

Het optionele standaardgeval wordt uitgevoerd wanneer er geen andere overeenkomsten zijn gemaakt.

We beschouwen de volgende switch-statement:

#include <stdio.h>
int main() {
int number=5;
switch (number) {
  case 1:
  case 2:
  case 3:
    printf("One, Two, or Three.\n");
    break;
  case 4:
  case 5:
  case 6:
    printf("Four, Five, or Six.\n");
    break;
  default:
    printf("Greater than Six.\n");}}

Uitvoer:

Four, Five, or Six.

Nested Switch in C

In C kunnen we een binnenste schakelaar hebben ingebed in een buitenste schakelaar. Ook kunnen de hoofdletterconstanten 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

#include <stdio.h>
int main() {
        int ID = 500;
        int password = 000;
        printf("Plese Enter Your ID:\n ");
        scanf("%d", & ID);
        switch (ID) {
            case 500:
                printf("Enter your password:\n ");
                scanf("%d", & password);
                switch (password) {
                    case 000:
                        printf("Welcome Dear Programmer\n");
                        break;
                    default:
                        printf("incorrect password");
                        break;
                }
                break;
            default:
                printf("incorrect ID");
                break;
        }
}

UITVOER:

Plese Enter Your ID:
 500
Enter your password:
 000
Welcome Dear Programmer

  1. In het gegeven programma hebben we twee geïnitialiseerde 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 die zijn gekoppeld aan de overeenkomende case (when ID==500).
  3. Als de block-instructie 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 matched case (when password==000).
  4. Anders zal de schakelkast de standaardsituatie 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-instructie.

Regels voor switch-statement

  • Een expressie moet altijd een resultaat opleveren.
  • Hoofdletterlabels moeten constant en uniek zijn.
  • Hoofdletterlabels moeten eindigen met een dubbele punt ( :).
  • In elk geval moet een break-trefwoord aanwezig zijn.
  • Er kan maar één standaardlabel zijn.
  • We kunnen meerdere schakelinstructies 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 testexpressie bevatten.
  • Elk geval moet een break-trefwoord bevatten.
  • Hoofdletterlabel moet constant en uniek zijn.
  • De standaardwaarde is optioneel.
  • Meerdere schakelinstructies kunnen in elkaar worden genest.

C Taal

  1. Circuit met een schakelaar
  2. C# switch-instructie
  3. C++ do...while-lus met voorbeelden
  4. C++ Switch Case Statement met VOORBEELD
  5. C++-aanwijzers met voorbeelden
  6. Overbelasting van C++-operator met voorbeelden
  7. C++-functies met programmavoorbeelden
  8. C# Collecties Zelfstudie met Voorbeelden
  9. Python Print()-instructie:afdrukken met voorbeelden
  10. Python String count() met VOORBEELDEN
  11. Python round() functie met VOORBEELDEN