المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : هل يوجد في الجافا دالة تشبه goto



MKCIT
16-12-2005, 10:35 PM
السلام عليكم إخواني الكرام::

هل يوجد في الجافا دالة تستخدم للإنتقال من تنفيذ سطر معين من الكود إلى سطر اخر مثل دالة goto في C أو C3
C#

مثال ::
أنا أمتلك هذا الكود

1:public class prog{
2:public static void main(String[] args){
3:System.out.println("Hello Programmer");
4:int x=5,y=5;
5:System.out.println(""+(x+y));
6://هنا أريد أن أكتب دالة تعيدني إلى السطر رقم 3
7:}}
في السطر رقم 6 أريد أن أستخدم دالة تعيدني إلى السطر رقم 3
*أرجو منكم توضيح الإجابة بمثال صغير وبارك الله في أعمالكم..

wellknownQ8
18-12-2005, 07:02 AM
و عليكم السلام و رحمة الله و بركاته

ما اعرفه انه تم تجنب استخدام الأمر goto في اللغات الحديثة لما تسبب من مشاكل في الذاكرة.. و قد سمعت بأن الامر goto موجود في الC و لها طريقة خاصة .. لكني لا أعرفها ...

على العموم .. هناك بدائل لما تحتاج ..
مثلا تستطيع استخدام loop أو Function مثلا:

1:public class prog{
2:public static void main(String[] args){
2':while ( (x+y) < 100 ){
3:System.out.println("Hello Programmer");
4:int x=5,y=5;
5:System.out.println(""+(x+y));
6://هنا أريد أن أكتب دالة تعيدني إلى السطر رقم 3
6`:}
7:}}
فقط اضفنا السطر 2` لتكرار العملية حتى شرط محدد ..

و أيضا تستطيع ان تستخدم داخل الLoop الأمرين:
Break
و هو للخروج من الLoop
او Contiue
و هو لتكملة الLoop مع تجاهل الاسطر التي بعده... مثلا:

1:public class prog{
2:public static void main(String[] args){
3:int x=5,y=5;
4:System.out.println("Hello Programmer");
5:while ( (x+y) < 100 ){
6:System.out.println(""+(x+y));
7:x+=5; y+=5 //increment x and y by 5 for each
8: if ( x+y = 20 )
9:continue;
10:System.out.println("Expected Break");
11:if ( x+y = 50 ){
12:System.out.println("Break Happened");
13:break;
14:}//end if
15:}//end while loop
16:}}

MKCIT
18-12-2005, 05:40 PM
بارك الله فيك أخي WellKnownQ8
وجزاك عني خير الجزاء

wellknownQ8
19-12-2005, 06:51 AM
جزانا و اياك أخي الكريم ..

و حياك الله

المصدر الاول
14-11-2008, 11:40 PM
نعم موجودة بالجافا ... لكن ما يستخدمونها ووضعوها مضاهات للسي++