Heim >Backend-Entwicklung >C#.Net-Tutorial >Was muss der Wert nach case in der switch-Anweisung sein?

Was muss der Wert nach case in der switch-Anweisung sein?

烟雨青岚
烟雨青岚Original
2020-07-07 14:31:0619826Durchsuche

Der Wert nach case in der switch-Anweisung muss eine Konstante sein. Da in der Switch-Anweisung eine Sprungtabelle basierend auf dem konstanten Wert hinter der Fallbezeichnung generiert wird, können Sie, sofern Variablen zulässig sind, nur von Anfang bis Ende wechseln Ein Vergleich verliert seine Bedeutung.

Was muss der Wert nach case in der switch-Anweisung sein?

Der Wert nach case in der switch-Anweisung muss eine Konstante sein.

Weil switch in der C-Sprache kein Ersatz für if ist.

Der Schalter wird während der Kompilierung optimiert und eine Sprungtabelle wird basierend auf dem konstanten Wert hinter der Fallbezeichnung generiert. Nach nur wenigen Vergleichen können Sie zur entsprechenden Bezeichnung springen.

Daher können Tags nicht wiederholt werden. Wenn Variablen zulässig sind, kann der Schalter nur in eine Reihe von „Wenn sonst“ degenerieren, und Daten können nur vom Anfang bis zum Ende verglichen werden, wodurch die Bedeutung des Schalters verloren geht.

Die Komplexität der Sprungtabelle und des Einzelvergleichs ist bei diesen beiden Methoden sehr unterschiedlich.

Dies ist auch einer der Gründe, warum Python keine Kontrollstruktur einführt, die dem Schalterfall in der C-Sprache entspricht.

Allgemeiner Ausdruck:

switch (表达式)
{
    case 常量表达式1:    语句1
    case 常量表达式2:    语句2
       ┇
    case 常量表达式n:    语句n
    default:        语句n+1
}

switch bedeutet „switch“, es ist auch eine „select“-Anweisung, aber seine Verwendung ist sehr einfach. switch ist eine Auswahlanweisung für mehrere Zweige. Vereinfacht ausgedrückt sind mehrere Zweige mehrere Wenns.

Funktionell gesehen können sich switch-Anweisungen und if-Anweisungen gegenseitig vollständig ersetzen. Aus programmtechnischer Sicht haben sie jedoch jeweils ihre eigenen Eigenschaften, sodass man bisher nicht sagen kann, dass das eine das andere vollständig ersetzen kann.

Wenn es relativ wenige verschachtelte ifs gibt (innerhalb von drei), ist es einfacher, ein Programm mit if zu schreiben.

Wenn jedoch viele Zweige ausgewählt sind, gibt es viele Ebenen verschachtelter if-Anweisungen, was zu einem langwierigen Programm und einer eingeschränkten Lesbarkeit führt.

Daher bietet die C-Sprache eine Switch-Anweisung, um die Auswahl mehrerer Zweige zu handhaben. Man kann also von einer klaren Arbeitsteilung zwischen If und Switch sprechen. In vielen großen Projekten kommt es häufig zu Auswahlsituationen mit mehreren Zweigen, sodass Switch-Anweisungen immer noch häufig verwendet werden.

Empfohlenes Tutorial: „C-Sprache

Das obige ist der detaillierte Inhalt vonWas muss der Wert nach case in der switch-Anweisung sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn