Bir iki değerleri kullanarak switch case deyimi
Benim kod, program bir metin kullanıcı tarafından girilen bağlı olarak yapar. Benim kod gibi görünüyor:
switch (name) {
case text1: {
//blah
break;
}
case text2: {
//blah
break;
}
case text3: {
//blah
break;
}
case text4: {
//blah
break;
}
Ancak, davalar text1
text4
içindeki kod aynı. Bu nedenle eğer benim gibi bir şey uygulamak mümkün olacağını merak ediyordum
case text1||text4: {
//blah
break;
}
||
operatör çalışmaz durumda deyim biliyorum ama orada bir şey kullanabilirim benzer.
CEVAP
Kullanımı aşağıdaki gibi CASE
Her iki ifade de olabilir.
case text1:
case text4:{
//blah
break;
}
BU örneğe BAKIN:kod örneği, belirli bir ay, gün sayısını hesaplar:
class SwitchDemo {
public static void main(String[] args) {
int month = 2;
int year = 2000;
int numDays = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;
case 2:
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
System.out.println("Number of Days = "
numDays);
}
}
Bu kodun çıktısı şöyledir:
Number of Days = 29
FALLTHROUGH:
İlgi çekici başka bir kırılma noktası ifadesidir. Her break deyimi sona kapsayan switch deyimi. Kontrol akışı ile devam ediyor anahtar bloğu aşağıdaki ilk deyim. Break ifadeleri onları blokları
fall through
switch açıklamaları nedeniyle olmadan gerekli: eşleşen case etiketinden sonra Tüm ifadeleri idam edilir sıra, sonraki dava etiketleri ifadesi ne olursa olsun, break deyimi kadar karşılaştı.
ÖRNEK KOD:
public class SwitchFallThrough {
public static void main(String[] args) {
java.util.ArrayList<String> futureMonths =
new java.util.ArrayList<String>();
int month = 8;
switch (month) {
case 1: futureMonths.add("January");
case 2: futureMonths.add("February");
case 3: futureMonths.add("March");
case 4: futureMonths.add("April");
case 5: futureMonths.add("May");
case 6: futureMonths.add("June");
case 7: futureMonths.add("July");
case 8: futureMonths.add("August");
case 9: futureMonths.add("September");
case 10: futureMonths.add("October");
case 11: futureMonths.add("November");
case 12: futureMonths.add("December");
default: break;
}
if (futureMonths.isEmpty()) {
System.out.println("Invalid month number");
} else {
for (String monthName : futureMonths) {
System.out.println(monthName);
}
}
}
}
Bu kodun çıktısı şöyledir:
August
September
October
November
December
Dizeleri kullanarak switch İfadeleri
Java SE 7 ve daha sonra, anahtarı Dize bir nesne kullanabilirsiniz deyimi tabir. Aşağıdaki kod örneği, , Dize değerine göre ay sayısını gösterir ay ismi
public class StringSwitchDemo {
public static int getMonthNumber(String month) {
int monthNumber = 0;
if (month == null) {
return monthNumber;
}
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}
return monthNumber;
}
public static void main(String[] args) {
String month = "August";
int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) {
System.out.println("Invalid month");
} else {
System.out.println(returnedMonthNumber);
}
}
}
Bu kodun çıktısı, 8.
Switch case deyimi bir dizi olarak kul...
switch case deyimi hata: case ifadeler...
İçin Python deyimi switch yedek?...
C kullanarak boolean değerleri...
Ne kadar kısaltmak için switch case bl...