عمار عبد الهادي ميرزا نشر 15 يوليو 2023 أرسل تقرير نشر 15 يوليو 2023 كنت اريد فقط التدرب على ما تعلمته من قسم ( أساسيات جافا سكريبت) لكن هذا لا يعمل بالطريقة المطلوبة 2 اقتباس
0 عمر قره محمد نشر 15 يوليو 2023 أرسل تقرير نشر 15 يوليو 2023 الخطأ في هذا الكود هو أن العبارة case في جملة switch يجب أن تحتوي على قيمة ثابتة وليس عبارة مقارنة. في هذا الحال، تفهم جافاسكريبت الـ val > 30 كـ true، ولكن لأن val لا يساوي true فلن يتم طباعة اي قيمة. يمكنك استخدام جملة if...else بدلاً من جملة switch. هذا مثال على كيفية تحقيق النتيجة المطلوبة باستخدام جملة if...else: const val = 40; if (val > 30) { console.log("more then 30"); } else { console.log("less then 30"); } هذا مثال على كيفية استخدام جملة `switch`: const fruit = 'apple'; switch (fruit) { case 'banana': console.log('I am a banana'); break; case 'apple': console.log('I am an apple'); break; case 'orange': console.log('I am an orange'); break; default: console.log('I am not a fruit'); } اقتباس
0 Kais Hasan نشر 15 يوليو 2023 أرسل تقرير نشر 15 يوليو 2023 هناك طريقة لاستعمال switch للقيام بذلك، و هي محاولة عمل مطابقة للقيمة التي نريدها بدل المتغير مع الشرط المطلوب، أي بدلاً من أن نعطيها val نعطيها true، فنحن نريد الشرط الذي يعطي true، بالتالي في حالتك يمكنك كتابة ما يلي: let val = 40; switch (true) { case val > 30: console.log("Very good " + val); break; case val > 20: console.log("Good " + val); break; default: console.log("Failed " + val); break; } بالطبع هذه فقط حيلة لجعل ال switch تعمل على ذلك، و لكن في هذه الحالة من الأفضل استعمال if..else ﻷن المثال هنا ليس واضحاً تماماًـ حيث أننا في البرمجة نهتم بوضوح الكود و ليس فقط أن يعمل بشكل صحيح، كما أن استعمال if..else يعطي أداء أسرع في بعض الحالات، و بالتالي في حال استعمال هذه الشروط في حلقة تتكرر كثيراً فمن الأفضل استعمال if..else. اقتباس
0 عمار عبد الهادي ميرزا نشر 15 يوليو 2023 الكاتب أرسل تقرير نشر 15 يوليو 2023 بتاريخ 50 دقائق مضت قال عمر قره محمد: الخطأ في هذا الكود هو أن العبارة case في جملة switch يجب أن تحتوي على قيمة ثابتة وليس عبارة مقارنة. في هذا الحال، تفهم جافاسكريبت الـ val > 30 كـ true، ولكن لأن val لا يساوي true فلن يتم طباعة اي قيمة. يمكنك استخدام جملة if...else بدلاً من جملة switch. هذا مثال على كيفية تحقيق النتيجة المطلوبة باستخدام جملة if...else: const val = 40; if (val > 30) { console.log("more then 30"); } else { console.log("less then 30"); } هذا مثال على كيفية استخدام جملة `switch`: const fruit = 'apple'; switch (fruit) { case 'banana': console.log('I am a banana'); break; case 'apple': console.log('I am an apple'); break; case 'orange': console.log('I am an orange'); break; default: console.log('I am not a fruit'); } هل يمكن استخدام If. Else. في حال كان لدي اكثر من حالتين ؟ اقتباس
0 Adnane Kadri نشر 15 يوليو 2023 أرسل تقرير نشر 15 يوليو 2023 لا يعمل الكود بطبعية الحال لأن استعلام switch لا يقبل عبارات expressions وإنما قيما فقط، فالمسند إلى استعلامات case يجب أن يكون إما محارف literals أو ثوابت constants، وبما أن switch لا يقبل ذلك فالكود لن يعمل بطبيعة الحال. الطريقة الصحيحة لإستعمال ذلك هي باستخدام شرط if else بشكل عادي: let val = 40; if (val > 30) { console.log("Very good " + val); } else if (val > 20) { console.log("Good " + val); } else { console.log("Failed " + val); } اقتباس
0 Mustafa Suleiman نشر 15 يوليو 2023 أرسل تقرير نشر 15 يوليو 2023 بتاريخ 5 ساعة قال عمار عبد الهادي ميرزا: هل يمكن استخدام If. Else. في حال كان لدي اكثر من حالتين ؟ بالطبع وحتى في حال كان لديك أكثر من 10 حالات ولا يوجد عدد محدد، وإليك مثال: const x = 10; if (x > 0) { console.log("x هو عدد موجب"); } else if (x < 0) { console.log("x هو عدد سالب"); } else { console.log("x هو الصفر"); } والفرق بين الجملة الشرطية if والـ Switch case هو أن الـ Switch نستخدمه في حال كان لدينا متغير واحد ونريد تنفيذ كود معين بناءًا على ذلك المتغير. أما الجملة الشرطية، فتستطيع استخدام عدة متغيرات ولا مشكلةفي ذلك، أي تستطيع استخدام أي نوع من الشروط والتعامل مع العديد من الحالات المعقدة بشكل أكبر، بالمقابل، switch case أكثر محدودية بسبب استخدامه لقيمة ثابتة فقط (متغير واحد) لحالات "case". أيضًا نستطيع استخدام شروط معقدة مع المعاملات المنطقية المختلفة مثل AND و OR للتحقق من صحة الشروط المتعددة، أما في "switch case"، يتم التحقق من تطابق القيمة المحددة للمتغير مع القيم المحددة في حالات "case". وهناك أمر هام وهو أن"switch case" أكثر كفاءة في الأداء عندما يكون لديك عدد كبير من الحالات الممكنة، لكونه يتيح للمترجم تحسين عمليات الفحص الداخلية وأسرع من سلسلة متسلسلة من الشروط في "if"، ولكن بالطبع في حال كان لدينا متغير واحد. اقتباس
السؤال
عمار عبد الهادي ميرزا
كنت اريد فقط التدرب على ما تعلمته من قسم ( أساسيات جافا سكريبت) لكن هذا لا يعمل بالطريقة المطلوبة
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.