تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Continue - Break مع امثلة متقدمة ..(7)
#1
كاتب الموضوع : Friendassist

لغة الجافا تدعم ثلاثة انواع من حالات التفرع الا وهم :

1_ Break و تستخدم لكسر او الخروج من حلقة ما ..
2_ Continue و تستخدم للقفز من علي قيمة معينة بالحلقة .. اي استبعاد قيمة معينة من الحلقة ..
3_ الحالة Return ..


اولا : الحالة Break ..

كود :
[color=#000000][COLOR=#0000bb] int n[/color][COLOR=#007700];
    for ([/COLOR][color=#0000bb]n[/color][color=#007700]=[/color][color=#0000bb]10[/color][color=#007700];[/color][color=#0000bb]n[/color][color=#007700]>[/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]n[/color][COLOR=#007700]--)
    {
      [/COLOR][color=#0000bb]list1[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700]([/color][color=#dd0000]"" [/color][color=#007700]+ [/color][color=#0000bb]n[/color][COLOR=#007700]);
        if ([/COLOR][color=#0000bb]n[/color][color=#007700]==[/color][color=#0000bb]3[/color][COLOR=#007700])
        {
            break;
        }
    }  
[/COLOR][/COLOR]

حيث يتم كسر الحلقة عند القيمة 3 و لا يتم عرض باقي الحلقة ..

مثال متقدم يشمل array , loop , if , break..

كود :
[color=#000000][COLOR=#007700]private [/color][color=#0000bb]void breakmethode[/color][COLOR=#007700]()
    {
        [/COLOR][color=#0000bb]int [/color][color=#007700][][] [/color][color=#0000bb]arrayOfInts [/color][color=#007700]= {{[/color][color=#0000bb]32[/color][color=#007700],[/color][color=#0000bb]87[/color][color=#007700],[/color][color=#0000bb]3[/color][color=#007700],[/color][color=#0000bb]58[/color][color=#007700]},{[/color][color=#0000bb]12[/color][color=#007700],[/color][color=#0000bb]1076[/color][color=#007700],[/color][color=#0000bb]2000[/color][color=#007700],[/color][color=#0000bb]8[/color][color=#007700]},{[/color][color=#0000bb]622[/color][color=#007700],[/color][color=#0000bb]127[/color][color=#007700],[/color][color=#0000bb]77[/color][color=#007700],[/color][color=#0000bb]955[/color][COLOR=#007700]}};
     [/COLOR][color=#0000bb]int searchFor [/color][color=#007700]=[/color][color=#0000bb]12[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]int i[/color][color=#007700],[/color][color=#0000bb]j [/color][color=#007700]= [/color][color=#0000bb]0[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]boolean foundIt[/color][color=#007700]=[/color][color=#0000bb]false[/color][COLOR=#007700];
     [/COLOR][color=#0000bb]search[/color][COLOR=#007700]:
     for ( [/COLOR][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]arrayOfInts[/color][color=#007700].[/color][color=#0000bb]length [/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++){
        for([/COLOR][color=#0000bb]j[/color][color=#007700]=[/color][color=#0000bb]0 [/color][color=#007700];[/color][color=#0000bb]j[/color][color=#007700]<[/color][color=#0000bb]arrayOfInts[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]].[/color][color=#0000bb]length[/color][color=#007700];[/color][color=#0000bb]j[/color][COLOR=#007700]++){
             if ([/COLOR][color=#0000bb]arrayOfInts[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]][[/color][color=#0000bb]j[/color][color=#007700]] == [/color][color=#0000bb]searchFor[/color][COLOR=#007700])
             {
               [/COLOR][color=#0000bb]foundIt[/color][color=#007700]=[/color][color=#0000bb]true[/color][COLOR=#007700];
               break [/COLOR][color=#0000bb]search[/color][COLOR=#007700];
             }
         }
     }
     if ([/COLOR][color=#0000bb]foundIt[/color][COLOR=#007700]){
     [/COLOR][color=#0000bb]label1[/color][color=#007700].[/color][color=#0000bb]setText[/color][color=#007700]([/color][color=#dd0000]"found" [/color][color=#007700]+ [/color][color=#0000bb]searchFor [/color][color=#007700]+ [/color][color=#dd0000]"at" [/color][color=#007700]+ [/color][color=#0000bb]i [/color][color=#007700]+[/color][color=#dd0000]","[/color][color=#007700]+ [/color][color=#0000bb]j[/color][COLOR=#007700]);
            }  
    }  
[/COLOR][/COLOR]

تستخدم الدالة لكسر عملية البحث عن رقم في مصفوفة arrayOfInts ..
يعني اذا وجدت الرقم 12 اخرج من الحلقتين
..

المثال الناتج ...







رابط تحميل المثال :
http://vb4arb.com/vb/uploaded/18_01350638366.rar

ثانيا : الحالة Continue ..

كود :
[color=#000000][COLOR=#0000bb] int n[/color][COLOR=#007700];
    for ([/COLOR][color=#0000bb]n[/color][color=#007700]=[/color][color=#0000bb]10[/color][color=#007700];[/color][color=#0000bb]n[/color][color=#007700]>[/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]n[/color][COLOR=#007700]--)
    {
        if ([/COLOR][color=#0000bb]n[/color][color=#007700]==[/color][color=#0000bb]5[/color][COLOR=#007700]){continue; }
      [/COLOR][color=#0000bb]list1[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700]([/color][color=#dd0000]"" [/color][color=#007700]+ [/color][color=#0000bb]n[/color][COLOR=#007700]);
      }  
[/COLOR][/COLOR]

حيث تم تجاهل العدد 5 من الحلقة و تم اكمال الحقة بشكل طبيعي ..

مثال متقدم

كود :
[color=#000000][COLOR=#0000bb] StringBuffer SearchMe [/color][color=#007700]= new [/color][color=#0000bb]StringBuffer[/color][color=#007700]([/color][color=#dd0000]"peter piper picked a peck of picked peppers"[/color][COLOR=#007700]);
     [/COLOR][color=#0000bb]int max[/color][color=#007700]=[/color][color=#0000bb]SearchMe[/color][color=#007700].[/color][color=#0000bb]length[/color][COLOR=#007700]();
     [/COLOR][color=#0000bb]int numPS [/color][color=#007700]= [/color][color=#0000bb]0[/color][COLOR=#007700];
     for ([/COLOR][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]max[/color][color=#007700];[/color][color=#0000bb]i[/color][COLOR=#007700]++){
         [/COLOR][COLOR=#ff8000]//يتم التركيز في عملية التفنيط عن كل من الحرفين P , S
         [/COLOR][color=#007700]if([/color][color=#0000bb]SearchMe[/color][color=#007700].[/color][color=#0000bb]charAt[/color][color=#007700]([/color][color=#0000bb]i[/color][color=#007700])!=[/color][color=#dd0000]'p'[/color][COLOR=#007700])
         {
               continue;
         }
         [/COLOR][color=#0000bb]numPS[/color][COLOR=#007700]++;
         [/COLOR][color=#0000bb]SearchMe[/color][color=#007700].[/color][color=#0000bb]setCharAt[/color][color=#007700]([/color][color=#0000bb]i[/color][color=#007700], [/color][color=#dd0000]'p'[/color][COLOR=#007700]);
     }
     [/COLOR][color=#0000bb]label1[/color][color=#007700].[/color][color=#0000bb]setText[/color][color=#007700]([/color][color=#dd0000]" Found " [/color][color=#007700]+ [/color][color=#0000bb]numPS [/color][color=#007700]+ [/color][color=#dd0000]"P , S in the string .."[/color][COLOR=#007700]);
     [/COLOR][color=#0000bb]label2[/color][color=#007700].[/color][color=#0000bb]setText[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700]+[/color][color=#0000bb]SearchMe[/color][COLOR=#007700]);  
[/COLOR][/COLOR]

يقوم هذا الكود بالبحث عن الحرفين P , S في متغير نصي و هو SearchMe ..



مثال آخر :

كود :
[color=#000000][COLOR=#0000bb]String searchMe [/color][color=#007700]= [/color][color=#dd0000]"Look for a substring in me"[/color][COLOR=#007700];
        [/COLOR][color=#0000bb]String substring [/color][color=#007700]= [/color][color=#dd0000]"sub"[/color][COLOR=#007700];
        [/COLOR][color=#0000bb]boolean foundIt [/color][color=#007700]= [/color][color=#0000bb]false[/color][COLOR=#007700];

        [/COLOR][color=#0000bb]int max [/color][color=#007700]= [/color][color=#0000bb]searchMe[/color][color=#007700].[/color][color=#0000bb]length[/color][color=#007700]() - [/color][color=#0000bb]substring[/color][color=#007700].[/color][color=#0000bb]length[/color][COLOR=#007700]();

    [/COLOR][color=#0000bb]test[/color][COLOR=#007700]:
        for ([/COLOR][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i [/color][color=#007700]<= [/color][color=#0000bb]max[/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++) {
            [/COLOR][color=#0000bb]int n [/color][color=#007700]= [/color][color=#0000bb]substring[/color][color=#007700].[/color][color=#0000bb]length[/color][COLOR=#007700]();
            [/COLOR][color=#0000bb]int j [/color][color=#007700]= [/color][color=#0000bb]i[/color][COLOR=#007700];
            [/COLOR][color=#0000bb]int k [/color][color=#007700]= [/color][color=#0000bb]0[/color][COLOR=#007700];
            while ([/COLOR][color=#0000bb]n[/color][color=#007700]-- != [/color][color=#0000bb]0[/color][COLOR=#007700]) {
                if ([/COLOR][color=#0000bb]searchMe[/color][color=#007700].[/color][color=#0000bb]charAt[/color][color=#007700]([/color][color=#0000bb]j[/color][COLOR=#007700]++)
                        != [/COLOR][color=#0000bb]substring[/color][color=#007700].[/color][color=#0000bb]charAt[/color][color=#007700]([/color][color=#0000bb]k[/color][COLOR=#007700]++)) {
                    continue [/COLOR][color=#0000bb]test[/color][COLOR=#007700];
                }
            }
            [/COLOR][color=#0000bb]foundIt [/color][color=#007700]= [/color][color=#0000bb]true[/color][COLOR=#007700];
                 break [/COLOR][color=#0000bb]test[/color][COLOR=#007700];
        }
         [/COLOR][color=#0000bb]label1[/color][color=#007700].[/color][color=#0000bb]setText[/color][color=#007700]([/color][color=#0000bb]foundIt [/color][color=#007700]? [/color][color=#dd0000]"Found it" [/color][COLOR=#007700]:
                                     [/COLOR][color=#dd0000]"Didn't find it"[/color][COLOR=#007700]);
    }  
[/COLOR][/COLOR]

رابط تحميل المثال :
http://vb4arb.com/vb/uploaded/18_11350638366.rar

ثالثا : الحالة Return ..
و تستخدم في حالتين اما ارجاع قيمة لدالة او عدم ارجاع اي قيمة ...
كود :
[color=#000000][COLOR=#007700]return ++[/color][color=#0000bb]count[/color][COLOR=#007700];  
[/COLOR][/COLOR]


كود :
[COLOR=#000000][COLOR=#007700]return;  
[/COLOR][/COLOR]

و السلام عليكم ورحمة الله ..












}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  بني التحكم و حالاتها في الجافا + امثلة عملية .. (2) RaggiTech 1 789 19-10-12, 12:55 PM
آخر رد: RaggiTech
  المتغيرات - المعاملات في الجافا + امثلة .. (1) RaggiTech 0 1,365 19-10-12, 12:51 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم