# Switch एक्सप्रेशन, टर्नरी व लेबल — कोर जावा

Source: https://www.geekswithgeeks.com/hi/core-java/java-switch-ternary-labels

> yield सहित आधुनिक switch एक्सप्रेशन में महारत हासिल करें, टर्नरी ऑपरेटर को पढ़ने योग्य ढंग से चेन करें, और नेस्टेड लूप को सटीक नियंत्रित करने के लिए लेबल्ड break/continue उपयोग करें।

## yield के साथ switch

`switch` एक्सप्रेशन की भुजा एकल मान की जगह पूरा ब्लॉक हो सकती है — भीतर से परिणाम देने के लिए `yield` उपयोग करें। हर रास्ते को मान देना ज़रूरी है, और कम्पाइलर enum/sealed के सभी मामले जाँचता है।

```java
int stars = switch (rating) {
    case 1, 2 -> 1;
    case 3 -> 3;
    default -> {
        int bonus = rating > 5 ? 1 : 0;
        yield rating + bonus;
    }
};
```

## टर्नरी — कम उपयोग करें

`cond ? a : b` एक सरल विकल्प के लिए बढ़िया है। टर्नरी को **नेस्ट** करना (`a ? b : c ? d : e`) पढ़ने में कठिन है — इतना जटिल होने पर `if/else` श्रृंखला या `switch` एक्सप्रेशन बेहतर है।

## लेबल्ड break/continue

लूप से पहले लगा लेबल `break label;` या `continue label;` को उस विशेष (शायद बाहरी) लूप तक नेस्टेड लूप के भीतर से पहुँचाता है — एक साथ दो लूप से बाहर निकलने का यही साफ़ तरीका है।

```java
search:
for (int i = 0; i < grid.length; i++) {
    for (int j = 0; j < grid[i].length; j++) {
        if (grid[i][j] == target) {
            System.out.println(i + "," + j);
            break search;   // exits BOTH loops
        }
    }
}
```
