Java'da Birden Çok Seçenek İçin Geçiş Bildirimini Kullanma

click fraud protection

Java programınızın iki veya üç işlem arasında bir seçim yapması gerekiyorsa, eğer öyleyse, başka Beyan yeterli olacaktır. Ancak eğer öyleyse, başka Bir programın yapması gerekebilecek bir takım seçimler olduğunda, ifade hantal hissetmeye başlar. Sadece çok fazla var Başka... eğer kod dağınık görünmeye başlamadan önce eklemek istediğiniz ifadeler. Birden fazla seçenek arasında bir karar gerektiğinde, switch deyimini kullanın.

Anahtar Bildirimi

Bir switch deyimi, bir programın bir ifade alternatif değerler listesine. Örneğin, 1 ile 4 arasındaki sayıları içeren bir açılır menünüz olduğunu düşünün. Hangi sayının seçildiğine bağlı olarak, programınızın farklı bir şey yapmasını istersiniz:

// diyelim kullanıcı 4 numarayı seçti
int menuChoice = 4;
anahtarı (menuChoice)
{
dava 1:
JOptionPane.showMessageDialog (null, "1 sayısını seçtiniz");
break;
durum 2:
JOptionPane.showMessageDialog (null, "2 sayısını seçtiniz");
break;
durum 3:
JOptionPane.showMessageDialog (null, "3 sayısını seçtiniz");
break;
// Bu seçenek seçilir çünkü 4 değeri,
instagram viewer

// menuChoise değişkeni
durum 4: JOptionPane.showMessageDialog (null, "4 sayısını seçtiniz"); break;
varsayılan:
JOptionPane.showMessageDialog (null, "Bir şeyler ters gitti!");
break;
}

Switch ifadesinin sözdizimine bakarsanız birkaç şey fark etmelisiniz:

1. Karşılaştırılması gereken değeri içeren değişken, köşeli parantezlerin içine yerleştirilir.

2. Her alternatif seçenek bir vaka etiketi ile başlar. Zirveye göre karşılaştırılacak değer değişken sonra gelir, iki nokta üst üste gelir. Örneğin, durum 1: durum etiketi, ardından 1 değeri - durum 123: veya durum -9: kadar kolay olabilir. İstediğiniz kadar alternatif seçeneğiniz olabilir.

3. Yukarıdaki sözdizimine bakarsanız, dördüncü alternatif seçenek vurgulanır - vaka etiketi, yürüttüğü kod (yani, JOptionPane) ve bir kesme ifadesi. Break deyimi, yürütülmesi gereken kodun sonunu belirtir. Eğer bakarsanız, her alternatif seçeneğin bir break ifadesiyle sona erdiğini göreceksiniz. Ara ifadesini yazmayı hatırlamak çok önemlidir. Aşağıdaki kodu göz önünde bulundurun:

 // diyelim kullanıcı 1 numarayı seçti
int menuChoice = 1;
anahtarı (menuChoice)
dava 1:
JOptionPane.showMessageDialog (null, "1 sayısını seçtiniz");
durum 2:
JOptionPane.showMessageDialog (null, "2 sayısını seçtiniz");
break;
durum 3:
JOptionPane.showMessageDialog (null, "3 sayısını seçtiniz");
break;
durum 4:
JOptionPane.showMessageDialog (null, "4. sayıyı seçtiniz");
break;
varsayılan:
JOptionPane.showMessageDialog (null, "Bir şeyler ters gitti!");
break;
}

Gerçekleşmesini beklediğiniz şey, iletişim kutusu "1 sayısını seçtiniz" diyerek birinci durum etiketiyle eşleşen bir kesme ifadesi olmadığından ikinci durum etiketindeki kod da yürütülür. Bu, "2 sayısını seçtiniz" yazan bir sonraki iletişim kutusunun da görüneceği anlamına gelir.

4. Switch ifadesinin altında varsayılan bir etiket vardır. Bu, vaka etiketlerinin hiçbir değerinin kendisiyle karşılaştırılan değerle eşleşmemesi durumunda bir güvenlik ağı gibidir. İstenen seçeneklerden hiçbiri seçilmediğinde kod yürütmenin bir yolunu sağlamak çok yararlıdır.

Her zaman diğer seçeneklerden birinin seçilmesini bekliyorsanız, varsayılan etiketi dışarıda bırakabilirsiniz, ancak oluşturduğunuz her anahtar ifadesinin sonuna birini koymak iyi bir alışkanlıktır. Hiç kullanılmayacak gibi görünebilir, ancak hatalar koda sızabilir ve bir hata yakalamaya yardımcı olabilir.

JDK 7'den beri

Java sözdiziminde JDK 7'nin yayınlanmasıyla yapılan değişikliklerden biri, Teller anahtar ifadelerinde. Bir switch deyiminde String değerlerini karşılaştırabilmek çok kullanışlı olabilir:

Dize adı = "Bob";
anahtarı (name.toLowerCase ())
{
vaka "joe":
JOptionPane.showMessageDialog (null, "Günaydın, Joe!");
break;
vaka "michael":
JOptionPane.showMessageDialog (null, "Nasıl gidiyor, Michael?");
break;
vaka "bob":
JOptionPane.showMessageDialog (null, "Bob, eski dostum!");
break;
vaka "billy":
JOptionPane.showMessageDialog (null, "Öğleden Sonra Billy, çocuklar nasıl?");
break;
varsayılan:
JOptionPane.showMessageDialog (null, "Tanıştığımıza memnun oldum John Doe.");
break;
}

İki String değerini karşılaştırırken, hepsinin aynı durumda olduğundan emin olmanız çok daha kolay olabilir. .ToLowerCase yönteminin kullanılması, tüm büyük / küçük harf etiket değerlerinin küçük.

Geçiş Bildirimi Hakkında Hatırlamanız Gerekenler

• Karşılaştırılacak değişkenin türü karakter, bayt, kısa, int, Karakter, Bayt, Kısa, Tamsayı, Dize veya numaralandırma türü olmalıdır.

• Vaka etiketinin yanındaki değer bir değişken olamaz. Sabit bir ifade olmalıdır (ör. İnt literal, char literal).

• Tüm vaka etiketlerindeki sabit ifadelerin değerleri farklı olmalıdır. Aşağıdakiler derleme zamanı hatasına neden olur:

anahtarı (menuChoice)
{
vaka 323:
JOptionPane.showMessageDialog (null, "1. seçeneği seçtiniz");
break;
vaka 323:
JOptionPane.showMessageDialog (null, "2. seçeneği seçtiniz");
break;

• Bir switch deyiminde yalnızca bir varsayılan etiket olabilir.

• switch ifadesi için bir nesne kullanırken (örneğin, String, Integer, Character) boş olmadığından emin olun. Null nesnesi, switch deyimi yürütüldüğünde çalışma zamanı hatasına neden olur.

instagram story viewer