मुख्य सामग्री पर जाएं
मॉड्यूल 2 · पाठ 1 का 2पाठ्यक्रम में 3/14~12 min
मॉड्यूल पाठ (1/2)

कंडीशनल और लूप्स

रस्ट में नियंत्रण प्रवाह दो मुख्य निर्माणों के इर्द-गिर्द घूमता है: कौन सा निष्पादन पथ लेना है यह तय करने के लिए सशर्त अभिव्यक्ति, और निर्देशों को दोहराने के लिए लूप निर्माण।

सशर्त: if एक अभिव्यक्ति के रूप में

रस्ट में, if कथन एक अभिव्यक्ति है, जिसका अर्थ है कि यह एक मान लौटाता है। हम किसी वेरिएबल को सीधे मान निर्दिष्ट करने के लिए if का उपयोग कर सकते हैं:

Rust
let condition = true;
let number = if condition { 5 } else { 6 }; // if/else as an expression

लूप्स और पुनरावृत्तियाँ

रस्ट तीन प्रकार के देशी लूप प्रदान करता है: loop, while, और for।

1. loop (अनंत लूप)

loop कीवर्ड एक अनंत लूप बनाता है जो तब तक जारी रहता है जब तक आप स्पष्ट रूप से इसे break का उपयोग बंद करने के लिए नहीं कहते:

Rust
let mut count = 0;
loop {
    count += 1;
    if count == 10 {
        break; // Exit the loop
    }
}

इसके अतिरिक्त, आप loop को break के ठीक बाद रखकर एक मान वापस कर सकते हैं:

Rust
let result = loop {
    count += 1;
    if count == 10 {
        break count * 2; // Returns 20
    }
};

2. while (सशर्त लूप)

जब तक बूलियन स्थिति सत्य रहती है तब तक कोड का एक ब्लॉक चलाता है:

Rust
let mut number = 3;
while number != 0 {
    println!("{}!", number);
    number -= 1;
}

3. for (संग्रह और रेंज पर पुनरावृत्ति)

for लूप किसी संग्रह या संख्याओं की श्रेणी में तत्वों पर पुनरावृत्ति करने के लिए सबसे आम और सबसे सुरक्षित उपकरण है:

Rust
// Iterates over numbers 1 through 3 (excluding 4)
for number in 1..4 {
    println!("Valore: {}", number);
}

// Iterates including the right boundary using '='
for number in 1..=3 {
    println!("Valore: {}", number); // Prints 1, 2 and 3
}

लूप लेबल

नेस्टेड लूप से निपटते समय, break और continue स्टेटमेंट डिफ़ॉल्ट रूप से सबसे आंतरिक लूप पर लागू होते हैं। रस्ट आपको बाहरी लूप को स्पष्ट रूप से समाप्त करने या जारी रखने के लिए लूप लेबल ('label_name: के रूप में लिखा गया) का उपयोग करने की अनुमति देता है:

Rust
let mut count = 0;
'outer: loop {
    loop {
        if count == 5 {
            break 'outer; // Exits the outer loop directly
        }
        count += 1;
    }
}

खुद कोशिश करना

व्यायाम#rust.m2.l1.e1
प्रयास: 0लोड हो रहा है...

7 के मान के साथ एक वैरिएबल नामित संख्या घोषित करें। इसके बाद, यदि संख्या 5 से अधिक है, या अन्यथा 'छोटी' है, तो वैरिएबल संदेश को 'बड़ा' मान निर्दिष्ट करने के लिए if/else अभिव्यक्ति का उपयोग करें। अंत में, println! का उपयोग करके संदेश प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

`संदेश दें = यदि संख्या > 5 { 'बड़ा' } अन्यथा { 'छोटा' };' लिखें और इसे `प्रिंटएलएन!' पर भेज दें।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#rust.m2.l1.e2
प्रयास: 0लोड हो रहा है...

एक लूप लिखें जो println का उपयोग करके 1 से 5 तक की संख्याओं को सम्मिलित करता है (अर्थात 1, 2, 3, 4, 5) प्रिंट करता है! प्रत्येक पुनरावृत्ति पर.

संपादक लोड हो रहा है...
संकेत दिखाएँ

समावेशी रेंज सिंटैक्स `for i in 1..=5` का उपयोग करें और ब्लॉक के अंदर `println!('{}', i);` चलाएं।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#rust.m2.l1.e3
प्रयास: 0लोड हो रहा है...

एक लूप लिखें जो 0 से शुरू होकर एक परिवर्तनशील चर काउंटर को बढ़ाता है। जब काउंटर 10 तक पहुंचता है, तो इस मान को एक अपरिवर्तनीय चर परिणाम को निर्दिष्ट करने के लिए ब्रेक स्टेटमेंट का उपयोग करके 5 से गुणा किए गए लूप रिटर्निंग काउंटर से बाहर निकलें। अंत में, परिणाम प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

`लेट रिजल्ट = लूप {...};` का प्रयोग करें। लूप के अंदर `काउंटर` बढ़ाएं और शर्त जोड़ें `अगर काउंटर == 10 {ब्रेक काउंटर * 5; }`.

3 प्रयासों के बाद समाधान उपलब्ध है