پوریا
1 سال پیش توسط پوریا مطرح شد
2 پاسخ

سوییچ در js

سلام به همه
عید تون مبارک

سر تمرین جاواسکریپت بودم یه تمرینی اومدم بکنم که با ورود کاربر از کاربر یه مقدار معدل اون رو بگیره و برای مثال اگر بین 18 تا 20 بود عنوان a رو نشون بده تا مقداری ها دیگه از سویچ ها استفاده کردم روش عادیش این بود که برای هر کدوم case رو تعریف کنم اما اومدم یکم خلاصه بنویسم و از | | استفاده کردم or ها ولی کدم رو درست اجرا نمیکنه ؟

var userScor =nomber(prompt(' enter your scor please'))

switch (userScor){
        case 18 || 19 || 20 :
        alert("A")
        break;
        case 15 || 16 || 17 :
        alert("B")
        break;
        case 14 || 13 || 12 :
        alert("C")
        break;
       default:
        alert('false');
        break;  
}

ثبت پرسش جدید
MagicalDev
تخصص : Laravel Developer
@magicaldev1 1 سال پیش مطرح شد
1

درود
ساده تر از switch هم میشد . به این صورت که تعریف بشه بزرگ تر 18 و کمتر از 20 میشه بین 18 و 20
اما برای switch نیازی به تعریف به این صورت نیست .
هر کدوم رو با یک case تعریف کنید و از | | استفاده نکنید .
تو هر ردیف هر چند تا کیس میخواین بزارین همون کار رو انجام میده .
موفق باشید


محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 1 سال پیش مطرح شد
0

سلام، روشی که شما برای استفاده از switch با مقادیر جدید استفاده کرده‌اید صحیح نیست. در switch، شما نمی‌توانید از عملگر شرطی or (||) برای تعریف بین دو شرط استفاده کنید. به جای آن، باید چند شرط را با case جداگانه تعریف کنید.

در ضمن، تابع prompt مقدار ورودی را به صورت رشته (string) باز می‌گرداند، بنابراین برای مقایسه با اعداد، آن را با استفاده از تابع parseInt به عدد تبدیل کنید.

در نهایت کد شما به صورت زیر تغییر میکند:

var userScor = parseInt(prompt('Enter your score please'));

switch (userScor) {
  case 18:
  case 19:
  case 20:
    alert("A");
    break;
  case 15:
  case 16:
  case 17:
    alert("B");
    break;
  case 14:
  case 13:
  case 12:
    alert("C");
    break;
  default:
    alert('false');
    break;  
}

با این تغییرات، کد شما باید به درستی کار کند.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام