Przełącz instrukcji (C)
switch i przypadku instrukcji pomocy złożonych warunkowego i projektowaniu zespołowym operacji kontrolnych.switch Instrukcji przekazuje sterowanie do instrukcji w jego treści.
Składnia
instrukcja wyboru:
**Przełącz (wyrażenie)**instrukcjioświadczenie o nazwie:
sprawa wyrażenie stała : instrukcjidomyślna: instrukcji
Kontroli przechodzi do deklaracji, których przypadkuwyrażenie stała odpowiada wartości przełączyć (wyrażenie). switch Instrukcji może zawierać dowolną liczbę przypadku wystąpienia, ale nie dwie stałe sprawa, w tym samym switch instrukcji może mieć taką samą wartość.Wykonanie instrukcji ciała zaczyna się od wybranego sprawozdania i przechodzi do końca organu lub do momentu break instrukcji przekazuje sterowanie z ciała.
Korzystanie z switch instrukcji zwykle wygląda mniej więcej tak:
switch( wyrażenie )
{
deklaracje
.
.
.
sprawa wyrażenie stała :
instrukcje wykonywane, jeśli wyrażenie jest równe
wartość tego wyrażenia stała
.
.
.
BREAK;
Wartość domyślna:
instrukcje wykonywane, jeżeli wyrażenie nie jest równa
wszelkie sprawy wyrażenie stała
}
Można użyć break instrukcji do zakończenia przetwarzania szczególnym przypadku w ramach switch instrukcji i do gałęzi do końca switch instrukcji.Bez break, program nadal dalej przypadku wykonywania instrukcji aż do break lub osiągnięty zostanie koniec instrukcji.W niektórych sytuacjach może być pożądane to kontynuacji.
Domyślną instrukcja jest wykonywana, jeśli nie przypadkuwyrażenie stała jest równa wartości przełączyć (wyrażenie). Jeśli domyślną instrukcji zostanie pominięty i nie przypadku zostanie znaleziony odpowiednik, brak instrukcji w switch organ są wykonywane.Może istnieć co najwyżej jeden domyślną instrukcji.Domyślną instrukcja nie muszą pochodzić na końcu; to może występować w dowolnym miejscu treści switch instrukcji.A przypadku lub domyślną etykieta może wystąpić tylko wewnątrz switch instrukcji.
Typ switchwyrażenie i przypadkuwyrażenie stała musi być integralną. Wartość każdego przypadkuwyrażenie stała musi być unikatowa w obrębie treści deklaracji.
Przypadku i domyślną etykiety z switch treść oświadczenia są istotne tylko w badaniu wstępnym, który określa, gdzie rozpoczyna się wykonywanie w treści deklaracji.Przełącznik sprawozdania mogą być zagnieżdżane.Wszelkie statyczne zmienne zostały zainicjowane przed wykonaniem do dowolnego switch instrukcji.
[!UWAGA]
Deklaracje mogą pojawiać się na czele tworzących złożone wyrażenie switch ciała, ale zawarte w deklaracji inicjowania nie są wykonywane.switch Instrukcji przekazuje sterowanie bezpośrednio do pliku wykonywalnego oświadczenie, w ramach organu, pomijając wiersze, które zawierają inicjowania.
Poniższe przykłady ilustrują switch instrukcji:
switch( c )
{
case 'A':
capa++;
case 'a':
lettera++;
default :
total++;
}
Wszystkie trzy sprawozdania switch ciała, w tym przykładzie są wykonywane, jeżeli c jest równa 'A' od break instrukcja nie pojawia się przed następujący przypadek.Wykonanie kontroli jest przenoszona do pierwszej instrukcji (capa++;) i w dalszym ciągu w kolejności przez użytkownika pozostałych części ciała.If c is equal to 'a', lettera and total are incremented.Tylko total jest zwiększana, gdy c nie jest równa 'A' lub 'a'.
switch( i )
{
case -1:
n++;
break;
case 0 :
z++;
break;
case 1 :
p++;
break;
}
W tym przykładzie break instrukcji następuje każdej deklaracji switch ciała.Break instrukcji wymusza wyjście z treści deklaracji, po wykonaniu jednej instrukcji.Jeśli i jest równa –1 tylko n jest zwiększana.Break po instrukcji n++; powoduje wykonanie kontroli, przekazywane z ciała instrukcji, pomijając pozostałe instrukcje.Podobnie jeśli i jest równa 0, tylko z jest zwiększana; Jeśli i jest równy 1, tylko p jest zwiększana.Ostatni break instrukcja nie jest absolutnie niezbędne, ponieważ formant przechodzi z ciała na końcu złożone wyrażenie, ale jest uwzględniony w spójności.
Pojedynczej instrukcji może wykonywać wiele przypadku etykiet, jak pokazano w następującym przykładzie:
case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' : hexcvt(c);
W tym przykładzie Jeśli wyrażenie stała jest równe dowolna litera między 'a' i 'f', hexcvt wywoływana jest funkcja.
Programu Microsoft
Microsoft c nie ogranicza liczbę przypadków wartości w switch instrukcji.Numer jest ograniczona jedynie przez ilość dostępnej pamięci.ANSI c wymaga co najmniej 257 dopuszczalne w przypadku etykiet switch instrukcji.
Domyślne dla Microsoft C jest, że włączone są rozszerzenia Microsoft.Opcja /Za kompilatora umożliwia wyłączenie tych rozszerzeń.
KONIEC Microsoft szczególne