JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ بيان ٽوڙڻ
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آپريٽر ڏانهن . ٻيو ڪال پهرين سان ملندڙ جلندڙ آهي، پر c سان شروع ٿئي ٿو . ٽيون ڪال سڀني ڪيسن ۾ مناسب قيمت نه ڳولي، تنهنڪري آپريٽر تي عمل ڪيو ويو آهي . ٽيون طريقو اهو آهي ته سي آپريٽر جي بدران آپريٽر استعمال ڪيو وڃي ، ان لاءِ اسان آپريٽر جو هڪ خاص فارم استعمال ڪنداسين جنهن کي ليبل سان سڏيو ويندو آهي . هي فارم هڪ ليبل وانگر ڏسڻ ۾ اچي ٿو - هي عام طور تي جاوا نالي جي جڳهه مان ڪو به مناسب نالو آهي، ڪوڊ جي بلاڪ کان اڳ. ان کان علاوه، ڪوڊ جي هن بلاڪ کي هڪ ليبل سان لاڳو ڪرڻ کان پوء، ڪوڊ جاري رکيو ويندو جڳه کان بلاڪ کان پوء لاڳاپيل ليبل سان، مثال طور: breakcase 5case 7defaultbreakgotobreakbreakbreak метка;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