JavaRush /جاوا بلاگ /Random-UR /جاوا میں بریک بیان
iloveski
سطح
Москва

جاوا میں بریک بیان

گروپ میں شائع ہوا۔
تمام ساتھیوں اور صرف دلچسپی رکھنے والوں کو ہیلو۔
جاوا میں بریک اسٹیٹمنٹ - 1
آج ہم بریک آپریٹر کے طور پر جاوا پروگرامنگ زبان کی ایک ایسی خصوصیت دیکھیں گے۔ ٹرانزیشن آپریٹرز کے موضوع پر یہ پہلا مضمون ہے، لہذا اگر آپ کو یہ پسند آیا تو مجھے مزید لکھنے میں خوشی ہوگی۔ میں فوراً نوٹ کرنا چاہوں گا کہ یہ مضمون بنیادی طور پر ابتدائی ڈویلپرز کے لیے ہے، اور ہو سکتا ہے کہ زیادہ ترقی یافتہ طلبا یہاں اپنے لیے کوئی نئی چیز نہ پائیں۔ تو چلو چلتے ہیں. جاوا میں، اس ترتیب کو تبدیل کرنے کے 2 طریقے ہیں جس میں پروگرام کی ہدایات پر عمل کیا جاتا ہے: جمپ اسٹیٹمنٹس اور استثنیٰ ہینڈلنگ میکانزم۔ جاوا میں تین جمپ آپریٹرز ہیں: توڑیں، جاری رکھیں اور واپس جائیں۔ آج میں آپ کو آپریٹر کو قریب سے دیکھنے کی دعوت دیتا ہوں break۔ استثنیٰ ہینڈلنگ اتنا وسیع موضوع ہے کہ یہ اس مضمون کے دائرہ کار سے باہر ہے۔ جاوا میں وقفے کے بیان کو استعمال کرنے کے تین طریقے ہیں۔ پہلا اور سب سے مقبول طریقہ یہ ہے کہ اسے breakلوپ سے جلد باہر نکلنے کے لیے استعمال کیا جائے، مثال کے طور پر:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for (int i = 0; i < 10; i++) {
            if (i == number) {
                break;
            }
            System.out.println(i);
        }
        System.out.println("cycle was finished");
    }
}
یہ مثال دکھائے گی:
1
2
cycle was finished
اس کا مطلب ہے کہ جب لوپ کاؤنٹر iپاس شدہ پیرامیٹر کے برابر ہو جاتا ہے number، یعنی نمبر 3، لوپ کا عمل جلد ختم ہو جاتا ہے۔ اگر پروگرام میں کئی نیسٹڈ لوپس ہیں، تو آؤٹ پٹ کو صرف اندرونی لوپ سے توڑیں، مثال کے طور پر:
public class SimpleExample {
    public static void main(String[] args) {
        findNumberInLoop(3);
    }
    public static void findNumberInLoop(int number){
        for(int i = 0; i < 5; i++) {
            for (int j =0; j < 10; j++) {
                if(j == number) {
                    break;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("cycles was finished");
    }
}
یہ مثال آؤٹ پٹ تیار کرتی ہے:
012
012
012
012
012
cycles was finished
جیسا کہ مثال سے دیکھا جا سکتا ہے، اندرونی لوپ کو ہر بار نمبر 3 (پیرامیٹر number) پر روکا جاتا ہے، اور بیرونی لوپ کو 5 بار عمل میں لایا جاتا ہے، جیسا کہ ارادہ کیا گیا ہے۔ جاوا میں، آپ ایک لوپ کے اندر ایک سے زیادہ بریک اسٹیٹمنٹ استعمال کر سکتے ہیں، لیکن اس کی سفارش نہیں کی جاتی ہے، کیونکہ کوڈ کی پڑھنے کی اہلیت اور ساخت بہت کم ہو جاتی ہے۔ دوسرا استعمال breakشاخوں میں بیانات پر عمل درآمد کو روکنے کے لیے استعمال کرنا ہے switch، مثال کے طور پر:
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }

    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
                break;
            case 2:
                System.out.println(number*number);
                break;
            case 3:
                System.out.println(number*number);
                break;
        }
        System.out.println("after switch");
    }
}
اس مثال کو چلانے سے آؤٹ پٹ پیدا ہوگا:
4
after switch
وقفے کے بیان نے پورے بلاک کے بعد کوڈ کو کنٹرول پاس کر دیا switch۔ اگر آپ اس مثال میں breakوضاحت نہیں کرتے ہیں :switch
public class SimpleExample {
    public static void main(String[] args) {
        square(2);
    }
    public static void square(int number){
        switch (number){
            case 1:
                System.out.println(number*number);
            case 2:
                System.out.println(number*number);
            case 3:
                System.out.println(number*number);
        }
        System.out.println("after switch");
    }
}
پیداوار توقع کے مطابق نہیں ہوگی:
4
4
after switch
ایسا اس لیے ہوا کیونکہ بلاک کے عمل میں آنے کے بعد، case 2پروگرام نے بعد کے تمام کیس بلاکس پر عمل درآمد جاری رکھا ، جس نے ہمیں متعلقہ آؤٹ پٹ دیا۔ بعض اوقات آپریٹر کی یہ خصوصیت switch ہمارے لیے فائدہ مند ہو سکتی ہے، مثال کے طور پر:
public class SimpleExample {
    public static void main(String[] args) {
        compare(2);
        compare(7);
        compare(12);
    }
    public static void compare(int number){
        switch (number){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("number is less than 5 or equal 5");
                break;
            case 6:
            case 7:
            case 8:
            case 9:
                System.out.println("number is greater than 5");
                break;
            default:
                System.out.println("number is less than 0 or greater than 9");
        }
        System.out.println("after switch");
    }
}
یہ پروگرام ایک دیے گئے نمبر کا نمبر 5 سے موازنہ کرتا ہے اور درج ذیل آؤٹ پٹ دیتا ہے۔
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
جب پہلی بار کسی طریقہ کو بلایا جاتا ہے، تو آپریٹر switchکنٹرول آپریٹر کو case 2اور پھر آپریٹر کو breakمیں منتقل کرتا ہے case 5۔ دوسری کال پہلی کی طرح ہے، لیکن c سے شروع ہوتی ہے case 7۔ تیسری کال تمام صورتوں میں مناسب قیمت نہیں پاتی، اس لیے آپریٹر کو پھانسی دی جاتی ہے default۔ تیسرا طریقہ یہ ہے کہ سی آپریٹر breakکے بجائے آپریٹر کا استعمال کیا gotoجائے۔اس کے لیے ہم آپریٹر کی ایک خاص شکل استعمال کریں گے جسے لیبل کے ساتھ breakکہا جاتا ہے ۔ breakیہ فارم break метка;لیبل کی طرح لگتا ہے - یہ عام طور پر جاوا نام کی جگہ سے کوئی بھی مناسب نام ہوتا ہے، کوڈ کے بلاک سے پہلے۔ مزید برآں، کوڈ کے اس بلاک کو breakلیبل کے ساتھ لاگو کرنے کے بعد، کوڈ کو متعلقہ لیبل کے ساتھ بلاک کے بعد جگہ سے لاگو ہوتا رہے گا، مثال کے طور پر:
public class SimpleExample {
    public static void main(String[] args) {
        howWeUseLabels(true);
        System.out.println();
        howWeUseLabels(false);
    }
    public static void howWeUseLabels(boolean bool) {
        firstBlock:{
            secondBlock:{
                thirdBlock:{
                    System.out.println("We will see it always");
                    if(bool) {
                        break secondBlock;
                    }
                    System.out.println("We won't see it if bool == true");
                }
                System.out.println("We won't see it if bool == true");
            }
            System.out.println("We will see it always");
        }
    }
}
یہ مثال درج ذیل آؤٹ پٹ تیار کرے گی۔
We will see it always
We will see it always

We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
پہلی میتھڈ کال کے بعد، آپریٹر breakکنٹرول کو بلاک کے آخر میں منتقل کرتا ہے secondBlock، باہر نکلتا secondBlockہے اور آخر میں thirdBlockدوسرے آپریٹر کو چلاتا ہے ۔ دوسری کال کے بعد، تمام لائنیں اسکرین پر ظاہر ہوتی ہیں۔ لیبل بھی سائیکلوں کی نشاندہی کرنے کے لیے استعمال کیے جا سکتے ہیں۔ یہ یاد رکھنا چاہیے کہ آپ صرف لیبل کے ذریعے اشارہ کردہ کوڈ کے بلاک کے اندر سے کسی لیبل پر جا سکتے ہیں؛ مثال کے طور پر، اس طرح کا کوڈ مرتب نہیں ہوگا: println()firstBlock
public class SimpleExample {
    public static void main(String[] args) {
        label:{
            System.out.println("inside label");
        }
        if(true) {
            break label;
        }
        System.out.println("This is error");
    }
}
کوڈ اور سٹیٹمنٹ کی صفائی کے بارے میں نوٹس break: بیان کو بہت احتیاط سے استعمال کرنے کے لیے عام طور پر قبول شدہ مشورہ ہے break، کیونکہ استعمال breakلوپ کو سمجھنا زیادہ مشکل بناتا ہے اور پروگرامر کو اس کے آپریشن کی باریکیوں کو سمجھنے کے لیے لوپ کے اندر دیکھنے پر مجبور کرتا ہے۔ ایک تحقیقی قاعدہ ہے کہ break آپ مختصر لوپس میں زیادہ اعتماد کے ساتھ اور لمبے اور گہرے نیسٹڈ لوپس میں زیادہ احتیاط کے ساتھ استعمال کر سکتے ہیں، کیونکہ اس سے غلطیوں کا امکان بڑھ جاتا ہے اور دوسرے پروگرامرز کے ذریعے آپ کے کوڈ کو پڑھنے اور سمجھنے میں پیچیدگی پیدا ہوتی ہے۔ breakجیسا کہ میں نے اوپر لکھا ہے، پورے کوڈ میں بکھرے ہوئے ایک بڑی تعداد کا استعمال اس بات کی نشاندہی کرتا ہے کہ پروگرامر پوری طرح سے نہیں سمجھتا کہ اس نے اپنا کوڈ کیوں لکھا جس طرح اس نے لکھا۔ اس طرح کے لوپ کو کئی چھوٹے لوپس میں توڑ کر ری فیکٹرنگ پر غور کرنا قابل قدر ہے۔ break متبادل کے طور پر لیبل کے ساتھ استعمال کرتے وقت محتاط رہنے کی کوشش کریں goto، کیونکہ یہ کوڈ کی ساخت کو پیچیدہ بناتا ہے۔ breakمیں آج آپ کو جاوا میں آپریٹر کے بارے میں بس اتنا ہی بتانا چاہتا ہوں ۔ مجھے تعمیری تنقید کرنے میں خوشی ہوگی، اور میں آپریٹرز کے بارے میں ایک تسلسل لکھنے کے لیے بھی تیار ہوں continueاور return، اگر آپ دلچسپی رکھتے ہیں۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION