ة غ ل ل ا ات ي س سا ا: ي ل ا ي ل م ا ي ه ا ف م ل ى ا عل رف ع ت ل ي ا ل# ل ا ص ف ل ا ا هذ هذف ي. ولات ح1 ت م ل ا. ات ان ي6 لبط ا ما ن ا. ات ي ل م ع ل ا م. حك1 ت ل ى ا نA ب. ات وف ف ص م ل ا ف ص ل اString . ف ص ل اBufferString . 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
أساسيات اللغة
يهدف هذا الفصل إلى التعرف على المفاهيم التالي:.المتحوالت.أنماط البيانات.العمليات.بنى التحكم.المصفوفات الصفString. الصفBufferString.
أنماط البيانات:1-1 Primitiveتملك جافا نوعين من أنماط البيانات، النوع األول هو األنماط البسيطة )
Type(عNNو المراجNNاني هNNوالث )ReferenceفوفاتNNفوف والمصNNل الصNNتي تمثNNوال ) والواجهات، حيث قيمة المتحول من نمNNط مرجNNع هي عنNNوان في الNNذاكرة للمكNNان
الذي يتم فيه تخزين القيمة أو القيم الفعلية. تستخدم األنماط البسيطة لتخزين قيمة واحدة )رقميNNة، محNNرف، قيمNNة منطقيNNة(،
وتملك جافا ثمانية أنماط بسيطة، وهي:byte.وتخزن على ثمانية بتات أي بايت واحد :short بت(.16 بايت )2: حجمه int بت(.32 بايت )4: حجمه long بت(.64 بايت )8: حجمه float أرقام بعد الفاصلة(.10 بايت )4: حجمه double رقم بعد الفاصلة(.20 بايت )8: حجمه char بت(.16 بايت )2: لتخزين محرف وحيد وحجمه boolean.لتخزين قيمة منطقية صحيحة أو خاطئة :
( أنماط البيانات البسيطة الموجودة في جافا.1يوضح الجدول )
الحجم)نمط البياناتbits)
أكبر قيمةأصغر قيمةالقيمة االبتدائية
Boolean1FalsefalseTrueByte80-128-(2)7127(27-
1)Short160-215215-1Char16\u000\(u000()
0)\uffff
Int320-231231-1Long640L-263263-1Float320.0f
Double640.0(1جدول)
أسماء المتحوالت:1-2يجب اتباع القواعد التالية أثناء تسمية المتحوالت:
( يجب أن يبدأ بحرفA-Z, a-z أو )Unicode Character.)$( أو )_( أو يتبع الحرف األول تسلسل من األحرف أو األرقام أوUnicodeCharacter
أو )_( أو )$(.( يجب أن ال يكون االسم كلمة محجوزةconst, goto.أو كلمة مفتاحية )
أمثلة: int \u0046x=8; int _fd=7; char $f; boolean foo; int bid3_4h;
float 3_node;
2
معتمثل األعداد الصحيحة إشارة
تمثل األعداد الحقيقيةمع إشارة
معرفات صالحة
معرفات غير صالحة
short !theCase;
مالحظة: هما متحوالن مختلفان.Radius و radiusجافا حساسة لحالة األحرف، أي أن
1-3Literals: وهي عبارة عن قيمNNة تعطى لمتحNNول، أي تظهNNر في الطNNرف اليميNNني للمسNNاواة،
ويمكن أن تسند إلى متحول من أي نمط بسيط، كما هو آتي.Boolean Literals:
وهي عبارة عن القيم المسNNموحة الNNتي يمكن نسNNبها إلى متحNNول بوليNNاني،.true و falseوهي عبارة عن
boolean isBig=true. boolean isLittle=false;
Character Literals:.Unicode Characterوهي عبارة عن محرف وحيد أو
char c= 'w'; char c1= '\u0019';
Integral Literals: وهي عبNNارة عن قيمNNة تنسNNب إلى متحNNول رقمي، ويمكن أن تكNNون هNNذه القيمة ممثلة بالنظام العشري أو النظام الثماني أو النظام الست عشNNري، حيث النظام االفتراضي هو عبارة عن النظام العشري، ولتحديNNد قيمNNة أنهNNا
(، أما لتحديد قيمة انها في النظام0ممثلة بالنظام الثماني نسبقها بالصفر )( NN0الست عشري يجب أن تسبق بx( أو )0X.)
مثال: يمكن تمثيلها بست طرق:28القيمة
28 034 0X1c 0X1C 0x1c 0x1C
مالحظة: يتم تمثيلintegral Literals بت، للتعامل معه على أنه32 على Z
long Literals 64 أي تمثيلها على( بت، نضيف الالحقة l, Lإلى ) نهاية القيمة.
اNة على أنهNة الرقيمNة القيمNتتم ترجمdouble أو floatرNإذا ظه ، في العبارة أي واحد مما يلي:
.1.414يحوي الفاصلة العشرية، مثل .1.4.23E+21، مثل e أو Eالحرف .2 مثNNلfloat، بالتNNالي تكNNون القيمNNة f أو FيحNNوي الالحقNNة .3
1.82f..234d، مثل d أو Dيحوي الالحقة .4
مالحظة: ، يعتNNبرf أو dأي قيمة تم تمثيلها بالشكل السابق بدون الالحقNNة
.doubleقيمة من نمط String Literals:
هي عبارة عن تتابع من األحرف، مثل:String s="java Fundamentals";
مالحظة: يمكن أن تظهرUnicode Character.ضمن أي مكان في ملف جافا
مثال:
3
Class MyClass{
Member VariableDecleration
Public void aMethod )Method Parameter({………….
Local Variable Parameters……….Catch) Exception Handler Parameters({
:فيما يلي بعض المحارف الخاصة '\n': new Line '\t' : tab '\r': return '\b': backspace '\\': backslash '\'' ': double quate '\' ': single quate
مجال المتحوالت:1-4هي عبارة عن المنطقة التي يمكن فيها استخدام المتحول.
يجب التمييز بين مجال المتحNNول وقابليNNة الرؤيNNة، حيث قابليNNة الرؤيNNة تطبNNق على األعضNاء البيانيNة، وتحNدد هNل يمكن اسNتخدام العضNو البيNاني خNارج الصNف الNذي
يحويها.أنواع المتحوالت حسب مجال المتحول:
.Member Variableمتحول عضو .1.Local Variableمتحول محلي .2.Method Parameterوسيط لطريقة .3.Exception Handler Parameterوسيط معالجة استثناء .4
( ما هي المنطقة التي يمكن فيها استخدام المتحول.1يبين الشكل )
(1الشكل)بالنسبة للمتحول العضو:
.يمكن أن يكون اسم العضو البياني بنفس اسم الصف.يمكن استخدامه ورؤيته في أي مكان في الصف.يتم تهيئته )إعطاؤه قيمة ابتدائية( بشكل أوتوماتيكي قبل استدعاء أي باني
بالنسبة للمتحوالت المحلية:.يمكن أن يكون له نفس اسم عضو بيانييجب تهيئته )إعطاؤه قيمة ابتدائية( بشكل صريح قبل استخدامه في أي
عبارة وإال سيعترض المترجم )خطأ أثناء الترجمة(. إذا كان المتحول هو عبارة عن مرجع، نعطيهnull.كقيمة ابتدائية
++op( زيادة المعامل :op.بمقدار واحد ومن ثم تقييمه )op++(تقييم المعامل :op( ومن ثم زيادة قيمته بمقدار )1.)--op( تقييم المعامل :op).من بعد إنقاص قيمته بمقدار واحد op( تقييم المعامل :--op.ومن ثم إنقاص قيمته بمقدار واحد )
مثال:x=5; y=0;y=x++;
(.x=6, y=5فتكون النتيجة )x=5; y=0;y=++x;
(.x=6, y=6فتكون النتيجة )معامالت)-()+(:-2
ليس لها أي تأثير.+:-12- :-
النفي)!(:-3تعكس قيمة متحول بولياني.
المتمم)~(:-4 (، ويطبق فقNNط على األنمNNاط0 يصبح 1، 1 يصبح 0تعكس بتات تعبير رقمي )
الصحيحة.التحويل القصري)(:-5
لتحويل نمط بيانات معامل إلى آخر بشكل صريح، كما في المثال التالي:byte x = 1;byte y = 2;byte z = x/y;
5
خطأ أثناء الترجمة، بيبن أنه يجب إعطاء قيمة ابتدائيةtmpالمتحول
، لNNذلك يجب قصNNر الطNNرفbyte إلى متحNNول من نمNNط intقيمNNة من نمNNط ، أي على الشكل:byteاليساري إلى
byte x = 1;byte y = 2;byte z = )byte( )x/y(;
:Arithmetic Operatorالعمليات الحسابية -2.+, %, /, -, *وهي يمكن تطبيقها على كل األنماط الحقيقية.-1يمكن استخدام )+( لجمع السالسل.-2
مثال:System.out.println)1+2+"3"(;
.33تطبع System.out.println)"1"+2+3(;
.123تطبع
،ArithmeticException يNNرمي اسNNتثناء (0)قسNNمة عNNدد صNNحيح على -3.بينما يعطي قسمة عدد حقيقي على صفر االنهاية)-∞ أو +∞(
تستخدم العمليNة )%( للحصNول على بNاقي القسNمة، تكNون إشNارة نNاتج-4 العملية )%( حسب إشNNارة المعامNNل األول لهNNذه العمليNNة، وعنNNد حسNNاببNNNNNاقي قسNNNNNمة عNNNNNدد صNNNNNحيح على الصNNNNNفر يتم رمي اسNNNNNتثناء )
ArithmeticExceptionفر هيNNأما باقي قسمة عدد حقيقي على الص ،) الالنهاية.مثال:
int z=11%3; System.out.println)z(;
z=11%)-3(; System.out.println)z(;
z=-11%3; System.out.println)z(;
z=-11%)-3(; System.out.println)z(;
,float الصفين المغلفين لألنماط البسيطة Float, Doubleتحوي كل من الصفين double(على ثابتين، الثابت األول يمثل الالنهاية InfinityةNNفيمكن أن تكون نتيج،)
العمليات الحسابية على المعامالت الحقيقية غير محددة أي الالنهاية )مثل القسNNمة (فيمثNNل القيمNNة الغNNير موجNNودة، فيمكن أن الNaNعلى صفر(، أما الثابت الثNNاني )
يكون هناك باألصل نتيجة للعملية الحسابية )مثل الجذر التربيعي لعدد سالب(، ( نستخدم الصيغة التالية:NaNمن أجل مقارنة قيمة مع الثابت)
Float.IsNaN)x(;
(.x==Float.NaNوال نستخدم )أما من أجل مقارنة قيمة مع الثابت)( نستخدم الصيغة التالية:
x==Double.POSITIVE_INFINITYمالحظة:
6
2يطبع
2يطبع
2يطبع -
2يطبع -
arithmetic addition
string concatenation
عندما يكون نمط البيانNNات لمعNNاملي العمليNNة الثنائيNNة مختلفين أو من نمNNط بيانNNات.int( أي )intأصغر حجمأ من ) char, byte, shortترجمNNيحول المNNعندها س ،)
نمط البيانات ألحد المعاملين إلى نمNNط بيانNNات المعامNNل اآلخNNر أو سNNيقوم بتحويNNلنمط البيانات للمعاملين إلى نمط آخر مختلف، كما هو موضح فيما يلي:
إذا كان نمط بيانات المعاملين أصغر من النمطintل كالNNعندها سيتم تحوي ، .intالمعاملين إلى
لNNاملين على األقNNد المعNNات أحNNط بيانNNان نمNNإذا كdoubleلNNتم تحويNNس ، .doubleالمعامل اآلخر إلى
(.1.0، لذلك يطبع السطر األخير القيمة )doubleنمط :Shift Operatorعمليات اإلزاحة-3
<< إزاحة إلى اليسار:-1op1 >> op2 إزاحة بتات : op1 إلى اليسار بمقدار op2)ويتم)تحذف ،
إضافة أصفار إلى اليمين، ويتم االحتفاظ ببت األكثر أهمية، وتصبح القيمNNةالجديدة كما يلي:
New_Value=Old_Value * 2^xهو البتات التي أزيحت.( x)حيث
1011001101100111
0001011001101100
>> إزاحة إلى اليمين مع أخذ اإلشارة بعين االعتبار.-2op1 << op2 : إزاحة يتاتop1 إلى اليمين بمقدار op2راءNNد إجNNعن ،
عملية اإلزاحNNة مNNع أخNNذ اإلشNارة بعين االعتبNNار تأخNNذ البتNNات الداخلNة مناليسار قيمة البت اليسارية.
1011001101100111
7
هذه األصفار التي تمتإضافتها
هذه البتات التي تمتإزاحتها وحذفها
a
a>>
a
هذه البتات التي تمتإزاحتها وحذفها
1001101100111000
تصبح القيمة:New_Value=old_Value/2^x
( هي عدد البتات التي تم إزاحتها.xحيث )>>> إزاحة إلى اليمين بدون أخذ اإلشارة:-3
Op1 <<< op2 إزاحة بتات :op1 إلى اليمين بمقدار op2بدون إشارة حيث تأخذ البتات الداخلة من اليسار قيمة الصفر.
1011001101100111
1001101100111111
يغير هذا المعامل إشارة العدد السالب إلى عدد موجب.
:Compression Operatorعمليات المقارنة-4 تعيد كل عميات المقارنة قيمة منطقية، ويوجد في جافا العديد من عمليات
المقارنة وهي:: وتطبق فقط على األنماط الرقمية.>, >=, <=, <-12-istanceofرض معين، أيNNه غNNذي ينتمي إليNNوتستخدم لمعرفة الصف ال :
يجب أن يكون المعامل اليساري هو مرجع واليميني هNNو عبNNارة عن صNNفأو واجهة أو نمط مصفوفة.
في الحاالت التالي:true القيمة instanceofتعيد ود فيNNف الموجNNرض من الصNNو غNNاري هNNل اليسNNان المعامNNإذا ك
الطرف اليميني أو من صف ابن له.رفNNود في الطNNرض الموجNNأ من الغNNذي أنشNNف الNNان الصNNإذا ك
اليساري يحقق الواجهة الموجودة في الطرف اليمني.اريNNرف اليسNNفوفة والطNNع مصNNإذا كان الطرف اليساري هو مرج
نمط مصفوفة.مثال:
class TestInstanceOF { public static void main)String args[]( { A a = new A)(; B b = new B)(; if )b instanceof X( System.out.println)true(; else System.out.println)false(; if )b instanceof B( System.out.println)true(; else System.out.println)false(;
8
a
a<<
هذه األصفار التي تمتإضافتها
a<<<
هذه البتات التي تمتإزاحتها وحذفها
if )b instanceof A( System.out.println)true(; else System.out.println)false(; if )a instanceof A( System.out.println)true(; else System.out.println)false(; if )a instanceof X( System.out.println)true(; else System.out.println)false(;
}}
interface X {}class A implements X {}class B extends A {}
Yالمترجم)خطأ أثناء الترجمة(، عندها العبNNارة ) y=)Y( xيرNNغ ) مسموحة من قبل المترجم.
( ارةNNانت العبNNا إذا كNNأم x instanceof YلNNة من قبNNمقبول ) ( صحيحةx )Y(=Y y، عندها العبارة )) falseالمترجم ولكن تعيد أثناء التنفيذ.ClassCastExceptionولكن ترمي استثناء
( إذا كانت العبارةx instanceof y صحيحة وتعيد )trueعندها ، ( صحيحة.x )Y(=Y yالعبارة ))
3-:=! ,==يستخدم مع األنماط البسيطة.-1 (equalsال يمكن استخدامها مع األغراض وإنما نستخدم الطريقNNة )-2
بعد إعادة تحقيقها كما تريد في الصفوف المناسبة..String Literalsيمكن استخدام )==( لمقارنة -3
(int يتم تقييمها ك 10خطأ أثناء الترجمة )القيمة ( بشكل صريحbyteلذلك يجب قصرها إلى )
char letterD = 'D'; long packed = 0L; packed = letterD; packed = )packed << 16( | letterC; packed = )packed << 16( | letterB; packed = )packed << 16( | letterA; long mask = 0xFFFF; char letter = )char( )packed & mask(; System.out.println)"From right to left the letters in packed are:"(; System.out.println)" " + letter + Long.toBinaryString)letter((; packed >>= 16; // Shift out the rightmost letter letter = )char( )packed & mask(; System.out.println)" " + letter + Long.toBinaryString)letter((; packed >>= 16; letter = )char( )packed & mask(; System.out.println)" " + letter + Long.toBinaryString)letter((; packed >>= 16; letter = )char( )packed & mask(; System.out.println)" " + letter + Long.toBinaryString)letter((; }}
التقييمالعملية
(-- ,++postfix)من اليسار إلى اليمينمن اليمين إلى اليسار++, --, +, -, ~, !
new, )type()object creation, cast(من اليمين إلى اليسارمن اليسار إلى اليمين*, /, %من اليسار إلى اليمين+, -
من اليسار إلى اليمين<<, >>, <<< ,=> ,> ,=< ,<instanceofمن اليسار إلى اليمين
من اليسار إلى اليمين==, !=من اليسار إلى اليمين&من اليسار إلى اليمين^من اليسار إلى اليمين|
من اليسار إلى اليمين&&من اليسار إلى اليمين||من اليمين إلى اليسار?:
,=>> ,=<< ,=& ,=^ ,=| ,=/ ,=* ,=- ,=+ ,= =>>>
من اليمين إلى اليسار
مثال:class Precedence { public static void main)String args[]( { int i = 0; i = i++; i = i++; i = i++; System.out.println)i(; int array[] = new int[5]; int index = 0; array[index] = index = 3;
12
( ألن العملية )=( لها0يطبع )األولوية األقل
يأخذ العنصر األول القيمة )( وليس العنصر الرابع3
for )int c = 0; c < array.length; i++( System.out.println)array[c](; System.out.println)"index: " + index(;
char e=-1; (، حيث نمNNطcharخطNNأ اثنNNاء الترجمNNة ألن القيمNNة ال تنتمي إلى مجNNال نمNNط البيانNNات )
( هو نمط صحيح بدون إشارة.charالبيانات ) float f=1.3;
.double( يتم ترجمتها على أنها 1.3خطأ أثناء الترجمة، ألن القيمة ) float f1=1/3;
.int( هي من نمط 1/3العبارة صحيحة، ألن القيمة ) float f2=1.0/3.0;
Nخطأ أثناء الترجمة، ألن الطرف اليميني يتم تقييمه كdouble.
عند نسب متحول نهائي إلى متحول، إذا كان نمط بيانات المتحول النهائي أوسع من نمNNط بيانات المتحول وكانت قيمة المتحول النهائي ضNNمن مجNNال نمNNط بيانNNات المتحNNول عنNNدها
سيتم تحويل ضمني للمتحول النهائي:byte b;final int a=10;b=a;
.byte محددة وضمن مجال نمط البيانات aالعبارة صحيحة، الن قيمة
final int x=a; b=x;
العبارة صحيحة. int y; final int z=y; b=z;
.yخطأ أثناء الترجمة عند السطر الثاني والثالي، ألنه لم يتم تحديد قيمة المتحول بنى التحكم:-3المصفوفات:-4
int i[]={ { }, new int[]{}};int i[][]={{1,2},new int[2]};int ii[]={2,3,4};
:Flow Controlبنى التحكم -5:Selection Statementsعبارات إتخاذ القرار -1
:ifعبارة -1:ifالشكل العام لتعليمة
if )<expression1>({// if <expression1> returns true, statements in this block are
executed.}
17
11121
يجب تحديدالخطأ أثناء الترجمة newطول المصفوفة بعد المعامل
بعد اسم المصفوفةأو
تعريفات صحيحة
[else if )<expression2>({/ if <expression1> is false and <expression2> is true, Then statements in this block will be executed}
..else{// if the expression in the if statement and the expressionsin all the else if statements were false, then the statements in this block will be executed.}
] أوfalse( تعبNNير منطقي أي أن قيمتNNه إمNNا expressionيجب أن يكون )
true( تخدامNNويجب اس ،y==x تينNNة قيمNNلمقارن )وليس( y=xإال في ) ,xحال كNNانت المتحNNولين ) yيعطيNNولكن س( يينNNولين منطقNNا متحNNهم )
( متحولين منx, yنتيجة خاطئة فقط بدون اعتراض المترجم(، إذا كان ) نمط مغاير للنمط المنطقي سيعترض المترجم )خطأ أثناء الترجمة(، كمNNا
هو موضح في المثال التالي:boolean b1 = false;boolean b2 = true;if)b1=b2( System.out.println)"The value of b1: " + b1(;
:switchعبارة -2:switchالشكل العام لعبارة
switch)<>({case value1:statementsbreak;
case value2:statementsbreak;
……..default:statementsbreak;
}
مالحظات: آخNNر جNNزء في عبNNارةdefaultليس من الضNNروري أن تكNNون عبNNارة -1
switch. فسيتم تنفيNNذها وإذا كNNانتdefaultأثناء التنفيذ، إذا تم مصادفة جزء -2
.false( هي exp=valueالشرط ) ,int, short من األنماط التالية switchيجب أن يكون وسيط عبارة -3
char, byte, enum. من نمط بيانات رقمي.caseيجب أن يكون وسيط عبارة -4
18
التعليمات التي يجب أن تنفذفي حال كان قيمة الشرط )
exp=value1 هي )(true)
التعليمات التي يجب أن تنفذ فيحال كان قيمة الشرط )
exp=value2 هي )(true)
التعليمات التي يجب أن تنفذ في ( مغايرة لكلexpحال كان قيمة )
.caseالقيم الموجود في عبارات
داخل األقNNواس، كمNNا هNNوswitchال يمكن التصريح عن متحول عبارة -5موضح فيما يلي:
swicth)int x=2;(بينما يمكن استخدام العمليات الحسابية البسيطة:
Switch)x+y(Switch)x++(
مثال:class SwitchTest { public static void main)String[] args( { Signal sig = Enum.valueOf)Signal.class, args[0].toUpperCase)((; switch )sig( { case RED: sig.redSays)(; break; case YELLOW: sig.yellowSays)(; case GREEN: sig.greenSays)(; } }}
enum Signal { RED, YELLOW, GREEN;public void redSays)({ System.out.println)"STOP"(; }public void yellowSays)({ System.out.println)"STOP if it is safe to do so."(; System.out.println)"Otherwise"(; }public void greenSays)({ System.out.println)"Keep going."(; }}
، فإنه سيتم تنفيذtrue( هي exp=valueعندما تكون قيمة الشرط )-6 تحNNويcase، إذا كNNانت عبNNارة caseالتعليمات الموجودة في عبNNارة
سينتقل التحكم إلى التعليمة الموجودة بعد عبارةbreakعلى تعليمة switch ةNNوي على تعليمNNانت ال تحتNNا إذا كNNأم ،breakذNNتم تنفيNNس ،
باإلضNNNافة إلى التعليمNNNاتcaseالتعليمNNNات الموجNNNودة في عبNNNارة أوbreak التاليNNة حNNتى تصNNادف تعليمNNة caseالموجودة في عبارات
.switchتنتهي تعليمة تأكيــد:
أو أي وسيط ثNNاني منint من نمط switchيجب أن يكون وسيط عبارة ,charنمNNط short, byte, enumطNNارة من نمNNيط عبNNان وسNNإذا ك ،
double, floatيطNNة وسNNون قيمNNأ، ويجب أن يكNNسيعطي المترجم خط case ةNNول تعليمNNات متحNNط بيانNNال نمNNمن مجNNض switchيعطيNNوإال س
المترجم خطأ، كما هو موضح فيما يلي:byte i=2;switch )i({case 3:
19
System.out.println)"Three"(; break; case 130: System.out.println)"One Thirty"(; break; }
هو:whileالشكل العام لعبارة while ) <expression> ( {// if the <expression> is true,// execute the statements in this block.// After the execution, go back to check the condition again.}
:do-Whileعبارة -2:do-Whileالشكل العام لعبارة
do {// Execute the statements in this block.} while ) <expression> (;
مالحظة: مرة واحدة على األقNNلdo-Whileيتم تنفيذ التعليمات الموجودة ضمن كتلة
حتى ولو كان الشNNرط غNNير محقNNق )ألنNNه أوال يتم تنفيNNذ التعليمNNات ثم فحصالشرط(.
:forعبارة -3:forالشكل العام لعبارة
for ) <statement>; <test>; <expression>( {// if the <test> is true, execute the block.}
<statement.تستخدم لتهيئة متحول الحلقة :> <test شرط منطقية قيمته إما :>true أو false.<expressionاتNNذ التعليمNNد تنفيNNرة بعNNذها مباشNNيتم تنفي :>
ما هي نتيجة تنفيذ الكود التالي:-2int i = 0;do{ System.out.println ) " do block."(; } while) i > 0(
.do blockيطبع أ.
خطأ أثناء الترجمة.ب.
خطأ أثناء التنفيذ.ت.
يتم تنفيNNذ الكNNود بNNدون خطNNأ ولكن الث.يطبع شيء.
ما هي الخيارات التي تمثNNل نتيجNNة تنفيNNذ-3الكود التالي:
for )int i = 0; i < 2; i++( for ) int j = 1; j < 4; j++( { if ) i == j ( continue; System.out.println ) " i = " + i
+ " j = " +
j (; }
A. i = 0 j = 1B. i = 0 j = 2C. i = 0 j = 3D. i = 1 j = 1E. i = 1 j = 2F. i = 1 j = 3
ما هي الخيارات التي تمثNNل نتيجNNة تنفيNNذ-4الكود التالي:
OuterLoop: for )int i = 0; i < 2; i++(
for ) int j = 1; j < 4; j++( { if ) i == j ( continue OuterLoop; System.out.println ) " i = " + i + " j = " + j (; }
A. i = 0 j = 1B. i = 0 j = 2C. i = 0 j = 3D. i = 1 j = 1E. i = 1 j = 2F. i = 1 j = 3
ما نتيجة تنفيذ الكود التالي:-5
long i = 2;switch )i( {
case 1: System.out.print)"Case 1"(; case 2: System.out.print)"Case 2"(; case 3: System.out.print)"Case 3"(; default: System.out.print)"Default"(;}
.Case 2يطبع أ.
.Case 2, Case 3يطبع ب.
.Case2, Case 3, Defaultيطبع ت.
خطأ أثناء الترجمة.ث.
ما هي نتيجة تنفيذ الكود التالي:-6int i = 1, j = 1; switch )i + j( {
case 1: System.out.println)"Case 1"(; case 2: System.out.println)"Case 2"(; case 3: System.out.println)"Case 3"(; default: System.out.println)"Default"(; }
.Case 2يطبعأ.
خطأ أثناء الترجمة عند السطر الثاني.ب.
.Case 2, Case 3, Defaultيطبعت.
خطأ أثناء الترجمة عند السطر األول.ث.
ما هي نتيجة تنفيذ الكود التالي:-7class ContinueTest {
24
public static void main)String[] arg( { int i = 2; Outer: if )i < 5( { System.out.println)"I: " + i(; i++; continue Outer; } }}
A. for)int[] i : myArray(B. for)int i : myArray(C. for)myArray : int i(
D. for)int I : myArray.iterator)((
ما هي العبارات الصحيحة:-10A. while )int i < 7( {
i++; System.out.println)"i is " + i(; }
B. int i = 3; while )i( { System.out.println)"i is " + i(; }
C. int j = 0;for )int k = 0, j + k != 10; j++, k++( System.out.println)"j=" + j + ", k=" + k(;
D. int j = 0;loop: do { System.out.println)"j=" + j++(; if )j == 3( continue loop; } while )j < 10(;
ما هي نتيجة تنفيذ الكود التالي:-11int x = 0, y = 4, z = 5;if )x > 2( if )y < 5( System.out.println)"message one"(; else System.out.println)"message two"(; else if )z > 5( System.out.println)"message three"(;else System.out.println)"message four"(;
.message oneيطبع أ.
.message two يطبعب.
.message three يطبعت.
.message four يطبع ث.
ما هي نتيجة تنفيذ الكود التالي:-12int j = 2;switch )j( {
case 2:
25
System.out.println)"value is two"(; case 2 + 1: System.out.println)"value is three"(; break; default: System.out.println)"value is " + j(; break;
}.value is twoيطبع أ.يطبع:ب.
value is twovalue is threevalue is " + j
خطأ أثناء الترجمة عند السطر الخامس.ت.
يطبع:ث.value is twovalue is threevalue is " + j
مصNNفوفة عناصNNرهاsalaries إذا كNNانت -13 ، ما هي العبارة الصNNحيحةfloatمن نمط
للمرور على عناصر المصفوفة:A. for )float f:salaries(B. for )int i:salaries(C. for )float f::salaries(D. for )int i::salaries(
ما هي العبارات الصحيحة:-14A. for )int i=0, j=1; i>10; i++, j++(B. for )int i=0, j=1;; i++, j++(C. for )int i=0, float j=1; ; i++, j++(D. for )String s = ""; s.length)(>10;
s += '!'( ما هي العبارات الصحيحة:-15
A. while )int a = 0( { /* whatever */ }
B. while )int a == 0( { /* whatever */ }
C. do { /* whatever */ } while )int a = 0(
D. do { /* whatever */ } while )int a == 0(
E. for )int a==0; a>100; a++( { /* whatever */ }
F. كل العبارات السابقة خاطئة
ما هي أنماط البيانات الصNNحيحة لوسNNيط-16:switchعبارة
A. byteB. int
C. longD. float E. charF. String
ما نتيجة تنفيذ الكود التالي:-17
public class LogicTest{public static void main)String[] args( {int i = 5; int j = 10; int k = 15; if ) )i < j( || ) k-- > j( ( System.out.println )"First if, value of k: " + k(; if ) )i > j( && ) --k < j( ( System.out.println )"Second if, value of k: " + k(; System.out.println )"Out of if, k:" + k(; } }A. First if, value of k: 14 Out of if, k: 13B. First if, value of k: 15 Out of if, k: 14C. First if, value of k: 15 Out of if, k: 13D. First if, value of k: 15 Out of if, k: 15
ما هي نتيجة تنفيذ الكود التالي:-18 public class LogicTest{ public static void main)String[]
args( {int i = 5; int j = 10; int k = 15; if ) )i < j( || ) k-- > j( ( System.out.println )"First if, value of k: " + k(; if ) )i < j( && ) --k < j( ( System.out.println )"Second if, value of k: " +
k(;System.out.println)"Out of if, k:" +
k(; } }A. First if, value of k: 14 Out of if, k: 13
26
B. First if, value of k: 15 Out of if, k: 14C. First if, value of k: 15 Out of if, k: 13
مNNا هي األسNNطر الNNتي سNNتكون جNNزء من-19نتيجة التنفيذ:
for )int i = 0; i > 2; i++( {for ) int j = 1; j > 4; j++( { if ) i == j ( { continue; } System.out.println ) " i = " + i + " j = " + j (; } }A. i = 0 j = 1B. i = 0 j = 2C. i = 0 j = 3D. i = 1 j = 1E. i = 1 j = 2F. i = 1 j = 3
ماذا يطبع البرنامج التالي:-20 public class test ) private static int j = 0; private static boolean
methodB)int k( { j += k; return true; }public static void methodA)int i( { boolean b: b = i < 10 | methodB )4(; b = i < 10 || methodB )8(;
ما هي قيمة )( بعد التنفيذ:-21int i= 1, j= 10 ; do { if )i++> --j( continue; } while )i<5(;
A. i = 6 and j= 5 B. i = 5 and j= 5 C. i = 6 and j= 4 D. i = 5 and j= 6 E. i = 6 and j= 6
أي من األسطر التالية ستعطي خطأ أثناء-22الترجمة:
A. int i=0; if)i( { System.out.println)"Hello"(; }
B. boolean b=true; boolean b2=true;
if)b==b2( System.out.println)"So true"(;
C. int i=1; int j=2; if)i==1|| j==2( System.out.println)"OK"(;
D. int i=1; int j=2; if)i==1 &| j==2( System.out.println)"OK"(;
ما هي نتيجة تنفيذ الصف التالي:-23public class Ombersley{ public static void main)String argv[]({ boolean b1 = true; if))b1 ==true( || place)true(( System.out.println)"Hello Crowle"(; }