«switch-statement» etiketlenmiş sorular

Bilgisayar programlamasında, bir switch, case, select veya inspect ifadesi, değişken içeriğe dayalı olarak belirli kod bloklarını çağırmak için kullanılan bir seçim kontrol mekanizması türüdür.


30
Python'daki switch deyiminin değiştirilmesi?
Bu sorunun cevapları bir toplum çabasıdır . Bu yayını iyileştirmek için mevcut yanıtları düzenleyin. Şu anda yeni yanıtları veya etkileşimleri kabul etmiyor. Bir girdi dizininin değerine göre farklı sabit değerler döndüren bir işlev Python yazmak istiyorum. Diğer dillerde bir switchveya casedeyimi kullanırım, ancak Python'un bir switchifadesi yok gibi görünüyor . …


23
Değişkenler neden bir switch deyiminde bildirilemiyor?
Bunu hep merak ettim - neden bir switch deyimindeki bir vaka etiketinden sonra değişkenleri açıklayamıyorsunuz? C ++ 'da değişkenleri hemen hemen her yerde bildirebilirsiniz (ve ilk kullanıma yakın olarak bildirmek açıkçası iyi bir şeydir), ancak aşağıdakiler yine de işe yaramaz: switch (val) { case VAL: // This won't work int …

21
JavaScript'te birden çok durumu ifade etme
JavaScript gibi bir şey switch deyiminde birden fazla durumda ihtiyacım var: switch (varName) { case "afshin", "saeed", "larry": alert('Hey'); break; default: alert('Default case'); break; } Bunu nasıl yapabilirim? JavaScript'te böyle bir şey yapmanın bir yolu yoksa, DRY konseptini de takip eden alternatif bir çözüm bilmek istiyorum .

18
Anahtar deyiminde birden çok vaka
case value:Tekrar tekrar belirtmeden birden fazla vaka deyiminden geçmenin bir yolu var mı ? Bunun işe yaradığını biliyorum: switch (value) { case 1: case 2: case 3: // Do some stuff break; case 4: case 5: case 6: // Do some different stuff break; default: // Default stuff break; } …

14
C # ifadesi geçişi geçiş?
Geçiş ifadesi geçişi, yapıları sevmek switchve sevmek için benim en önemli nedenlerimden biri if/else if. Burada bir örnek: static string NumberToWords(int number) { string[] numbers = new string[] { "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; string[] tens = new string[] { "", "", "twenty", "thirty", …

30
'Açma tipine' bundan daha iyi bir alternatif var mı?
C # switchtürünü göremiyorum (topladığım özel bir durum olarak eklenmedi, çünkü isilişkiler birden fazla farklı casegeçerli olabileceği anlamına geliyor ), bunun dışında bir türe geçişin benzetiminin daha iyi bir yolu var mı? void Foo(object o) { if (o is A) { ((A)o).Hop(); } else if (o is B) { ((B)o).Skip(); …


11
Bir anahtar durum bildirimi için iki değer kullanma
Kodumda, program kullanıcı tarafından girilen metne bağlı olarak bir şey yapar. Kodum şöyle görünüyor: switch (name) { case text1: { //blah break; } case text2: { //blah break; } case text3: { //blah break; } case text4: { //blah break; } Ancak, kod durumlarda text1ve text4aynıdır. Bu yüzden şöyle bir …

4
Bitişik girişlerdeki Java anahtarı neden ek vakalarla daha hızlı çalışıyor gibi görünüyor?
Ana program mantığımda birçok noktada çağrılan sıcak işlevlerde çalışacağı için son derece optimize edilmesi gereken bazı Java kodları üzerinde çalışıyorum. Bu kodun bir kısmı, doubledeğişkenlerin 10keyfi negatif olmayanlara yükseltilmiş olarak çarpılmasını içerirint exponent . Bir Kısa yol: çarpılan değer etmektir almak için (düzenleme ancak mümkün olan en hızlı aşağıya Güncelleme …


6
Java: alt sınıf altında enum ile switch deyimini kullanma
Öncelikle C # 'daki numaralara daha aşina olduğumu ve java'daki numaraların oldukça dağınık olduğunu belirteceğim. Gördüğünüz gibi, bir sonraki örneğimde @ enums bir switch deyimi kullanmaya çalışıyorum ama ne yaptığım önemli değil. Aldığım hata: Nitelikli vaka etiketi SomeClass.AnotherClass.MyEnum.VALUE_A, niteliksiz numaralandırma sabiti ile değiştirilmelidirVALUE_A Şey, hatayı oldukça anlıyorum ama enum başka …

21
Anahtar ifadeleri her zaman varsayılan bir cümle içermeli mi?
İlk kod incelemelerimden birinde (bir süre önce), tüm anahtar ifadelerinde varsayılan bir cümle eklemenin iyi bir uygulama olduğu söylendi. Son zamanlarda bu tavsiyeyi hatırladım ama gerekçesinin ne olduğunu hatırlayamıyorum. Şimdi bana oldukça garip geliyor. Her zaman varsayılan bir ifade eklemenin mantıklı bir nedeni var mı? Bu dil bağımlı mı? O …

12
'Geçiş', 'if' değerinden daha mı hızlı?
Bir switchifade aslında bir ifadeden daha mı hızlıdır if? Aşağıdaki kodu /Oxbayrağı ile Visual Studio 2010'un x64 C ++ derleyicisi üzerinde koştu : #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.