switch…case u C-u (Switch Statement in C) s primjerima

Što je naredba Switch u C-u?

Izjava Switch u C testira vrijednost varijable i uspoređuje je s više slučajeva. Nakon što se pronađe podudaranje slučaja, izvršava se blok naredbi povezanih s tim određenim slučajem.

Svako kućište u bloku prekidača ima drugačije ime/broj koji se naziva identifikator. Vrijednost koju daje korisnik uspoređuje se sa svim slučajevima unutar bloka prekidača dok se ne pronađe podudaranje.

Ako podudaranje velikih i malih slova NIJE pronađeno, tada se izvršava zadana izjava, a kontrola izlazi iz bloka prekidača.

Sintaksa promjene velikih i malih slova

Opća sintaksa načina na koji se promjeni velika i mala slova implementira u 'C' programu je sljedeća:

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;
  • Izraz može biti cjelobrojni izraz ili znakovni izraz.
  • Vrijednost-1, 2, n su oznake slučaja koje se koriste za identifikaciju svakog pojedinačnog slučaja. Upamtite da oznake slučaja ne bi trebale biti iste jer mogu stvoriti problem tijekom izvođenja programa. Pretpostavimo da imamo dva slučaja s istom oznakom kao '1'. Zatim tijekom izvođenja programa, slučaj koji se prvi pojavi će se izvršiti iako želite da program izvrši drugi slučaj. To stvara probleme u programu i ne daje željeni rezultat.
  • Oznake velikih i malih slova uvijek završavaju dvotočkom ( : ). Svaki od ovih slučajeva povezan je s blokom.
  • Blok nije ništa drugo nego više naredbi koje su grupirane za određeni slučaj.
  • Kad god se sklopka izvrši, vrijednost testnog izraza se uspoređuje sa svim slučajevima koje smo definirali unutar sklopke. Pretpostavimo da testni izraz sadrži vrijednost 4. Ova se vrijednost uspoređuje sa svim slučajevima do slučaja čija oznaka četiri nije pronađena u programu. Čim se slučaj pronađe, blok naredbi pridružen tom slučaju se izvršava i kontrola izlazi iz prekidača.
  • Ključna riječ break u svakom slučaju označava kraj određenog slučaja. Ako ne stavimo prekid u svaki slučaj, čak i ako se određeni slučaj izvrši, prekidač u C će nastaviti izvršavati sve slučajeve dok se ne dosegne kraj. Ovo se ne bi smjelo dogoditi; stoga uvijek moramo staviti ključnu riječ break u svakom slučaju. Break će prekinuti slučaj nakon što se izvrši i kontrola će ispasti iz prekidača.
  • Zadani slučaj je izborni. Kad god se vrijednost testnog izraza ne podudara ni s jednim slučajem unutar prekidača, tada će se izvršiti zadana vrijednost. Inače, nije potrebno pisati default u switch.
  • Nakon što se sklopka izvrši, kontrola će ići na naredbu-x, a izvođenje programa će se nastaviti.

Dijagram toka izjave Switch

Sljedeći dijagram ilustrira kako se odabire velika i mala slova u promjeni velikih i malih slova:

Dijagram toka izjave Switch
Kako Switch radi

Primjer promjene slučaja u C

Sljedeći program ilustrira korištenje prekidača:

#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;
    }

Izlaz:

Value is 8

Primjer promjene slučaja u C

  1. U danom programu objasnili smo inicijalizirani a varijabla broj s vrijednošću 8.
  2. Konstrukcija prekidača koristi se za usporedbu vrijednosti pohranjene u varijabli num i izvršavanje bloka naredbi povezanih s odgovarajućim malim i malim slovima.
  3. U ovom programu, budući da je vrijednost pohranjena u varijabli num osam, prekidač će izvršiti slučaj čija je oznaka slučaja 8. Nakon izvršavanja slučaja, kontrola će ispasti iz prekidača i program će biti prekinut s uspješnim rezultatom ispis vrijednosti na izlaznom ekranu.

Pokušajte promijeniti vrijednost varijable num i primijetite promjenu u izlazu.

Na primjer, razmatramo sljedeći program koji je zadano:

#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");}}

Izlaz:

Other programming language

Kada radite s promjenom velikih i malih slova u C-u, grupirate više slučajeva s jedinstvenim oznakama. Morate uvesti naredbu break u svakom slučaju za grananje na kraju naredbe switch.

Neobavezni zadani slučaj pokreće se kada nema drugih podudaranja.

Razmatramo sljedeću izjavu o prebacivanju:

#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");}}

Izlaz:

Four, Five, or Six.

Ugniježđeni prekidač u C

In C, možemo imati unutarnji prekidač ugrađen u vanjski prekidač. Također, konstante velikih i malih slova unutarnjeg i vanjskog prekidača mogu imati zajedničke vrijednosti i bez ikakvih sukoba.

Smatramo sljedeći program u kojem korisnik treba utipkati vlastiti ID, ako je ID važeći, tražit će od njega da unese svoju lozinku, ako je lozinka točna, program će ispisati ime korisnika, u suprotnom, program će ispisati Netočno Lozinka i ako ID ne postoji, program će ispisati Neispravan ID

#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;
        }
}

Izlaz:

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

Ugniježđeni prekidač u C

  1. U danom programu objasnili smo inicijalizirane dvije varijable: ID i lozinku
  2. Konstrukcija vanjskog prekidača koristi se za usporedbu vrijednosti unesene u ID varijable. Izvršava blok naredbi povezanih s odgovarajućim slučajem (kada je ID==500).
  3. Ako se blok naredba izvodi s podudaranjem velikih i malih slova, koristi se unutarnji prekidač za usporedbu vrijednosti unesenih u varijablu lozinka i izvršavanje naredbi povezanih s podudaranjem velikih i malih slova (kada je lozinka==000).
  4. U suprotnom, prebacivanje velikih i malih slova pokrenut će zadane male i velike veličine i ispisati odgovarajući tekst koji se odnosi na nacrt programa.

Zašto nam treba kućište Switch?

Postoji jedan potencijalni problem s izjava if-else što znači da se složenost programa povećava kad god se povećava broj alternativnih puteva. Ako koristite više konstrukcija if-else u programu, program može postati težak za čitanje i razumijevanje. Ponekad čak može zbuniti programera koji je sam napisao program.

Rješenje ovog problema je naredba switch.

Pravila za naredbu switch

  • Izraz se uvijek mora izvršiti do rezultata.
  • Oznake slučajeva moraju biti konstantne i jedinstvene.
  • Oznake malih i malih slova moraju završavati dvotočkom ( : ).
  • Ključna riječ break mora biti prisutna u svakom slučaju.
  • Može postojati samo jedna zadana oznaka.
  • Možemo ugnijezditi više naredbi switch.

Rezime

  • Prekidač je konstrukt za donošenje odluka u 'C'.
  • Prekidač se koristi u programu gdje je uključeno više odluka.
  • Prekidač mora sadržavati izvršni testni izraz.
  • Svaki slučaj mora sadržavati ključnu riječ break.
  • Oznaka slučaja mora biti konstantna i jedinstvena.
  • Zadana je opcija.
  • Više naredbi switch može se ugniježditi jedna u drugu.