Java Tutorials

जावा एप्लीकेशन को पुनः प्रारंभ करना: नियंत्रित और अनियंत्रित तरीके

Spread the love

अपने आप में एक जावा एप्लीकेशन को पुनः आरंभ करना इंटरैक्टिव प्रोग्राम बनाने या निरंतर प्रक्रियाओं का अनुकरण करने के लिए एक उपयोगी तकनीक है। जबकि जावा एक अंतर्निहित पुनः आरंभ फ़ंक्शन प्रदान नहीं करता है, हम इस कार्यक्षमता को प्राप्त करने के लिए चतुराई से लूप और रिकर्सन का उपयोग कर सकते हैं। यह लेख कई दृष्टिकोणों का पता लगाता है, सरल लूप से लेकर रिकर्सिव विधियों तक, नियंत्रित पुनः आरंभ और अनियंत्रित, अनंत लूपों के संभावित नुकसान दोनों को दर्शाता है।

विषय सूची

  1. do-while लूप का उपयोग करके नियंत्रित पुनः आरंभ
  2. do-while के साथ अनंत लूपों को समझना और उनसे बचना
  3. रिकर्सन का उपयोग करके नियंत्रित पुनः आरंभ
  4. रिकर्सन के साथ स्टैक ओवरफ्लो को समझना और उससे बचना
  5. जावा एप्लीकेशन को पुनः आरंभ करने के लिए सर्वोत्तम अभ्यास

1. do-while लूप का उपयोग करके नियंत्रित पुनः आरंभ

सबसे सरल विधि आपके मुख्य प्रोग्राम तर्क को शामिल करने के लिए एक do-while लूप का उपयोग करती है। लूप तब तक जारी रहता है जब तक कि एक विशिष्ट स्थिति सही रहती है, एक नियंत्रित पुनः आरंभ तंत्र प्रदान करती है। उपयोगकर्ता, या प्रोग्राम स्वयं, यह निर्धारित करता है कि लूप कब समाप्त होता है।


import java.util.Scanner;

public class ControlledRestart {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        boolean restart = true;

        do {
            // आपका प्रोग्राम तर्क यहाँ
            System.out.println("प्रोग्राम चल रहा है...");
            // ... आपका कोड ...

            System.out.print("प्रोग्राम पुनः आरंभ करें? (y/n): ");
            String input = scanner.nextLine();
            restart = input.equalsIgnoreCase("y");

        } while (restart);

        scanner.close();
        System.out.println("प्रोग्राम समाप्त हो गया।");
    }
}

यह उदाहरण उपयोगकर्ता को यह तय करने के लिए इनपुट के लिए संकेत देता है कि क्या पुनः आरंभ करना है। लूप केवल तभी जारी रहता है जब उपयोगकर्ता “y” (केस-संवेदनशील नहीं) टाइप करता है।

2. do-while के साथ अनंत लूपों को समझना और उनसे बचना

एक स्पष्ट रोकने की स्थिति के बिना एक do-while लूप एक अनंत लूप बनाता है, जो तब तक अनिश्चित काल तक चलता रहता है जब तक कि मैन्युअल रूप से रोक नहीं दिया जाता (जैसे, Ctrl+C)। यह आम तौर पर बुरा अभ्यास है जब तक कि आपके पास लूप से बाहर निकलने का एक विशिष्ट तंत्र न हो, जैसे कि बाहरी घटनाओं या समय सीमा के आधार पर।


// इससे बचें! अनंत लूप उदाहरण
public class InfiniteLoopExample {
    public static void main(String[] args) {
        do {
            // आपका प्रोग्राम तर्क यहाँ
            System.out.println("प्रोग्राम चल रहा है...");
            // ... आपका कोड ...
        } while (true); // यह हमेशा के लिए चलेगा।
    }
}

3. रिकर्सन का उपयोग करके नियंत्रित पुनः आरंभ

रिकर्सन एक वैकल्पिक दृष्टिकोण प्रदान करता है। main विधि स्वयं को पुनरावर्ती रूप से कॉल करती है, नियंत्रित पुनः आरंभ को सक्षम करती है। स्टैक ओवरफ्लो त्रुटि को रोकने के लिए एक महत्वपूर्ण आधार मामला आवश्यक है।


import java.util.Scanner;

public class RecursiveRestart {

    public static void main(String[] args) {
        restartProgram();
    }

    public static void restartProgram() {
        Scanner scanner = new Scanner(System.in);
        // आपका प्रोग्राम तर्क यहाँ
        System.out.println("प्रोग्राम चल रहा है...");
        // ... आपका कोड ...

        System.out.print("प्रोग्राम पुनः आरंभ करें? (y/n): ");
        String input = scanner.nextLine();
        if (input.equalsIgnoreCase("y")) {
            restartProgram(); // पुनरावर्ती कॉल
        } else {
            scanner.close();
            System.out.println("प्रोग्राम समाप्त हो गया।");
        }
    }
}

यह उदाहरण पुनः आरंभ तर्क को प्रबंधित करने के लिए एक सहायक फ़ंक्शन, restartProgram() का उपयोग करता है। उपयोगकर्ता “n” दर्ज करने पर रिकर्सन रुक जाता है।

4. रिकर्सन के साथ स्टैक ओवरफ्लो को समझना और उससे बचना

अनियंत्रित do-while लूप के समान, अनियंत्रित रिकर्सन (बिना रोकने की स्थिति के) एक अनंत लूप और एक तेज़ StackOverflowError की ओर ले जाता है। इससे हमेशा बचना चाहिए।


// इससे बचें! स्टैक ओवरफ्लो उदाहरण
public class StackOverflowExample {
    public static void main(String[] args) {
        restartProgram();
    }

    public static void restartProgram() {
        // आपका प्रोग्राम तर्क यहाँ
        System.out.println("प्रोग्राम चल रहा है...");
        // ... आपका कोड ...
        restartProgram(); // बिना रोकने की स्थिति के पुनरावर्ती कॉल
    }
}

5. जावा एप्लीकेशन को पुनः आरंभ करने के लिए सर्वोत्तम अभ्यास

हालांकि तकनीकी रूप से पुनः आरंभ करने के लिए अनंत लूप बनाना संभव है, लेकिन हमेशा एक नियंत्रित रोकने की स्थिति का उपयोग करना सर्वोत्तम अभ्यास है। यह त्रुटियों को रोकता है और प्रोग्राम की स्थिरता सुनिश्चित करता है। एक सशर्त के साथ do-while लूप या एक आधार स्थिति के साथ पुनरावर्ती दृष्टिकोण अनुशंसित विधियाँ हैं। हमेशा संभावित अपवादों (जैसे InputMismatchException) को संभालें और उचित संसाधन सफाई (स्कैनर बंद करना, आदि) सुनिश्चित करें।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *