W programowaniu komputerowym instrukcja switch, case, select lub inspect jest rodzajem mechanizmu kontroli wyboru używanego do wywoływania określonych bloków kodu w oparciu o zmienną zawartość.
Instrukcje Switch są zazwyczaj szybsze niż równoważne instrukcje if-else-if (jak na przykład opisano w tym artykule ) ze względu na optymalizacje kompilatora. Jak właściwie działa ta optymalizacja? Czy ktoś ma dobre wytłumaczenie?
Czy istnieje sposób na zapisanie tego w mniejszej liczbie wierszy, ale nadal łatwe do odczytania? var month = ''; switch(mm) { case '1': month = 'January'; break; case '2': month = 'February'; break; case '3': month = 'March'; break; case '4': month = 'April'; break; case '5': month = 'May'; …
Spojrzałem na różne pytania i odpowiedzi na SO podobne do tego pytania, ale nie znalazłem rozwiązania. To, co mam, to wyliczenie, które reprezentuje różne sposoby przeglądania przewodnika telewizyjnego ... W Applicationklasie NDroid static enum guideView { GUIDE_VIEW_SEVEN_DAY, GUIDE_VIEW_NOW_SHOWING, GUIDE_VIEW_ALL_TIMESLOTS } ... kiedy użytkownik zmienia widok, program obsługi zdarzeń otrzymuje intod …
Czytam kod emulatora i odpowiedziałem na coś naprawdę dziwnego: switch (reg){ case 'eax': /* and so on*/ } Jak to jest możliwe? Myślałem, że możesz tylko switchna typach całkowitych. Czy ma miejsce jakieś sztuczki makro?
Jestem trochę zdezorientowany co do instrukcji switch w R. Po prostu wyszukując w Google funkcję, otrzymuję następujący przykład: Typowym zastosowaniem przełącznika jest rozgałęzianie zgodnie z wartością znaku jednego z argumentów funkcji. > centre <- function(x, type) { + switch(type, + mean = mean(x), + median = median(x), + trimmed = …
Mam zmienną, która może być wartością logiczną falselub liczbą całkowitą (w tym 0). Chcę umieścić to w instrukcji przełącznika, takiej jak: switch(my_var){ case 0: // Do something break; case 1: // Do something else break; case false: // Some other code } W moich testach w Google Chrome wydaje się …
Jaki jest sens używania {i }w caseoświadczeniu? Zwykle, bez względu na to, ile wierszy jest w caseinstrukcji, wszystkie wiersze są wykonywane. Czy to tylko reguła dotycząca starszych / nowszych kompilatorów, czy też coś za tym stoi? int a = 0; switch (a) { case 0:{ std::cout << "line1\n"; std::cout << …
Nie jestem pewien, co powoduje ten problem, ale w projekcie, który tworzę, kompilator zajmuje kilka godzin, aby skompilować moduł. Całkowity rozmiar mojej bazy kodu to 352 KB, ale żaden z modułów nie przekracza 10 KB. Używam portu Native, ale jest to bardzo trywialne; Po prostu Date.now()z tym aportuję . Czy …
Mam szalone pytanie dotyczące przełączników Java. int key = 2; switch (key) { case 1: int value = 1; break; case 2: value = 2; System.out.println(value); break; default: break; } Scenariusz 1 - gdy keyjest dwa, pomyślnie drukuje wartość jako 2. Scenariusz 2 - Kiedy mam zamiar skomentować value = …
Dlaczego kompilator nie umieszcza automatycznie instrukcji break po każdym bloku kodu w przełączniku? Czy to z powodów historycznych? Kiedy chciałbyś wykonać wiele bloków kodu?
Czy w Javie można napisać instrukcję switch, w której każdy przypadek zawiera więcej niż jedną wartość? Na przykład (chociaż wyraźnie poniższy kod nie zadziała): switch (num) { case 1 .. 5: System.out.println("testing case 1 to 5"); break; case 6 .. 10: System.out.println("testing case 6 to 10"); break; } Myślę, że …
W języku Swift, w jaki sposób mogę napisać przypadek w instrukcji switch, która testuje przełączaną wartość względem zawartości opcjonalnej , pomijając wielkość liter, jeśli opcja zawiera nil? Oto jak to sobie wyobrażam: let someValue = 5 let someOptional: Int? = nil switch someValue { case someOptional: // someOptional is non-nil, …
Powiedzmy, że mam kod w C o takiej strukturze: switch (something) { case 0: return "blah"; break; case 1: case 4: return "foo"; break; case 2: case 3: return "bar"; break; default: return "foobar"; break; } Oczywiście, te breakznaki nie są konieczne, aby kod działał poprawnie, ale wygląda na to, …
Biorąc pod uwagę następujący kod: string someString = null; switch (someString) { case string s: Console.WriteLine("string s"); break; case var o: Console.WriteLine("var o"); break; default: Console.WriteLine("default"); break; } Dlaczego instrukcja switch jest zgodna case var o? Rozumiem, że case string snie pasuje, kiedy, s == nullponieważ (skutecznie) (null as string) …
Jeśli mam instrukcję switch-case, w której obiekt w przełączniku jest ciągiem, czy można wykonać porównanie ignoreCase? Mam na przykład: string s = "house"; switch (s) { case "houSe": s = "window"; } Otrzyma swartość „okno”? Jak zastąpić instrukcję switch-case, aby porównywała ciągi przy użyciu ignoreCase?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.