Instrukcja switch
Część sekcji Podstawy ścieżki C# w Coddy. Lekcja 27 z 69.
Instrukcja switch działa jak wielowariantowa instrukcja if. Zamiast sprawdzać pojedynczy warunek, porównuje wartość zmiennej z wieloma przypadkami i wykonuje kod przypisany do pasującego przypadku.
Oto podstawowa struktura instrukcji switch:
switch (variable) {
case value1:
// Kod do wykonania, jeśli variable jest równe value1
break;
case value2:
// Kod do wykonania, jeśli variable jest równe value2
break;
// ... więcej przypadków
default:
// Kod do wykonania, jeśli żaden przypadek nie pasuje
break;
}- Po słowie kluczowym
switchw nawiasach podaje się zmienną, którą chcesz sprawdzić. - Każdy
casereprezentuje możliwą wartość zmiennej. - Kod wewnątrz każdego
casejest wykonywany, jeśli zmienna pasuje do wartości danego przypadku.
- Każdy niepusty
casemusi kończyć się instrukcjąbreak(lubreturn), która kończy działanieswitch. Pominięcie jej powoduje błąd kompilacji: w przeciwieństwie do C lub Java język C# nigdy nie pozwala na „przechodzenie” wykonania z jednego przypadku do następnego. Tylko puste etykiety przypadków umieszczone jedna nad drugą współdzielą kod, jak pokazano poniżej.
- Przypadek
defaultjest opcjonalny i zostaje wykonany, jeśli nie pasuje żaden inny przypadek.
Oto przykład:
int day = 3;
string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... przypadki dla pozostałych dni
default:
dayName = "Invalid day";
break;
}Możesz również połączyć kilka przypadków w jeden:
int day = 3;
string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... przypadki dla pozostałych dni
default:
dayName = "Invalid day";
break;
}Wyzwanie
PoczątkującyUtwórz program, który przyjmuje numer miesiąca (1 dla stycznia, 2 dla lutego itd.) i wypisuje porę roku, do której należy ten miesiąc. Do obsługi logiki użyj instrukcji switch.
Pory roku i odpowiadające im miesiące:
Winter: grudzień (12), styczeń (1), luty (2)Spring: marzec (3), kwiecień (4), maj (5)Summer: czerwiec (6), lipiec (7), sierpień (8)Autumn: wrzesień (9), październik (10), listopad (11)
Wypisz nazwę pory roku dokładnie tak, jak zapisano ją powyżej, po angielsku.
Spróbuj swoich sił
using System;
public class Program {
public static void Main(string[] args) {
int month = int.Parse(Console.ReadLine());
string season = "";
// Napisz swój kod poniżej
Console.WriteLine(season);
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczne7Podstawowe wejście i wyjście
Podstawowe wyjścieInterpolacja ciągów znakówOdczytywanie danych wejściowychParsowaniePowtórka — do 120Powtórka — prawda czy fałsz5Operatory część 2
Operatory porównaniaOperatory logiczne część 1Operatory logiczne część 2Powtórka — prosta logikaOperatory logiczne część 36Podejmowanie decyzji
Instrukcja ifIf - ElseInstrukcja switchOperator trójargumentowyPowtórzenie - If ElseZagnieżdżone If - Else9Pętle
Pętla forPętla whilePętla do whileInstrukcja breakInstrukcja continueZagnieżdżona pętlaNieskończona pętlaPowtórzenie – dynamiczne dane wejściowe12Operacje na ciągach znaków
Metody ciągów znaków – część 1Metody ciągów znaków – część 2Formatowanie ciągów znakówPoćwicz samodzielnie: Kompilator C# online