بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

دوستان کمی من رو راهنمایی کنید

مدیریت گفتگو
ramin301 12 سال پیش
آخرین تغییر: 12 سال پیش

دوستان من تازه آموزش ها رو شروع کردم به یادگیری اندروید و تقریبا میشه گفت صفر کیلومترم

من برای قسمت if , switch در بخش دوم آموزش ها یک مثالی تقریبا مثل مثال استاد زدم ولی به جای یک متغیر , دو تا متغیر معرفی کردم که خب برای if مشکلی نبود و در قسمت swtich کلا درست عمل نکرد. 

اینم کد مثال من

 int myNumber = 2;
        double num2 = 1.8;

        if (myNumber < num2) {
            Log.i("LOG", "If Result: no1");
        } else if (myNumber == num2) {
            Log.i("LOG", "If Result: no2");
        } else if (myNumber > num2) {
            Log.i("LOg", "If Result: daghighan moshakhas bood");
        } else {
            Log.i("LOG", "If Result: no3");
        }

        switch (myNumber) {
            case 1:
                Log.i("LOG", "Switch Result: no1");
                break;
            case 2:
                Log.i("LOG", "Switch Result: no2");
                break;
            case 3:
                Log.i("LOg", "Switch Result: daghighan moshakhas bood");
                break;
            default:
                Log.i("LOG", "Switch Result: no3");
        }

لطفا به قسمت بعدی نگاه بندازید که ببینید نظرتون درست فهمیدم

نظرات

hosseinAmini 12 سال پیش
اگر switch با if یک کار رو انجام میده، برای شرط switch هم باید اینو بنویسید myNumber < num2
hosseinAmini 12 سال پیش
بنویسید case myNumber < num2 و ...
hosseinAmini 12 سال پیش
آقا فکر کنم دارم اشتباه می کنم ببخشید
ramin301 12 سال پیش
منظور شما به این صورت هستش switch (myNumber) { case myNumber < num2: Log.i("LOG", "Switch Result: no1"); break; ؟؟؟؟ اینطور ی ارور میده کلا توی کدی که خودم نوشتم هر دو باید عبارت "daghighan moshakhas bood" رو توی logcat نشون بدند ولی درحالتی که خودم نوشتم برای switch عبارت "no2" نشون داده میشه که کاملا اشتباه هستش
aliakbar333 12 سال پیش
دوست من حسین جان درست میگه باید شرط رو اصلاح کنی . شرط if شما اینه که اگه عدد کوچکتر از 2num بود یه سری کار انجوم بده اما شرط سوئیچ چیه اگه عدد 2 باشه که هست . شرط همیشه صحیح ه.

پاسخ‌ها 1

ramin301 12 سال پیش

ببخشید من دقیقا متوجه نشدم یعنی شما عرض میفرمایید به صورت زیر بنویسم

  int myNumber = 2;
        double num2 = 1.8;

        if (myNumber < num2) {
            Log.i("LOG", "If Result: no1");
        } else if (myNumber == num2) {
            Log.i("LOG", "If Result: no2");
        } else if (myNumber > num2) {
            Log.i("LOg", "If Result: daghighan moshakhas bood");
        } else {
            Log.i("LOG", "If Result: no3");
        }

        switch (myNumber) {
            case myNumber < num2:
                Log.i("LOG", "Switch Result: no1");
                break;
            case myNumber == num2:
                Log.i("LOG", "Switch Result: no2");
                break;
            case myNumber > num2:
                Log.i("LOg", "Switch Result: daghighan moshakhas bood");
                break;
            default:
                Log.i("LOG", "Switch Result: no3");
        }

اگر اینطور هست که به طور کلی ارور میده . من عذر میخوام چون خیلی تازه کارم دقیقا منظورتون رو متوجه نمیشم

نظرات

hosseinAmini 12 سال پیش
من مطمئن نیستم ولی به این شکل بنویسید ببینید درست میشه؟ case < num2: و ...
ramin301 12 سال پیش
اگر منظورتون این هستش که myNumber رو از جلو case حذف کنم و فقط < num2 بمونه من انجام دادم ولی بازم ارور میده
Mseif 12 سال پیش
با سوئیچ چنین کاری نمیشه کرد چون شرط یکسانه و case ها هم باید از قبل قابل تعیین باشه ولی برای کاره شما این کار اصولی نیست می تونید از Do While استفاده کنید
ramin301 12 سال پیش
یعنی در سوئیچ شرط به طور کلی یکسانه هستش!؟! ممنون. پس از سوئیچ فقط در مواقعی که دارای شرطی یکسان باشیم میتونیم استفاده کنیم؟ مثل مثال خود استاد در آموزشها؟
Astro 12 سال پیش
شما هدفت چیه ؟ با سوییچ میخوای مقایسه کنی یا میخوای برابری رو چک کنی؟ و کدوم درست عمل نمیکنه؟
ramin301 12 سال پیش
من هدفم این بود که کدی رو که با if نوشتم رو عینا با switch بنویسم
Mseif 12 سال پیش
بله برای سوئچ شرط و شروط ها یکسانه و برای اینه که بگی یه شرط ثابت (حالا اگه این بود = Case ، اینکارو انجام بده ) و ....
ramin301 12 سال پیش
واقعا ممنون دوستان که اینجا بدون هیچ چشم داشتی به همه کمک میکنید
ramin301 12 سال پیش
پس کلا چنین کاری رو با switch نمیشه انجام داد.
Astro 12 سال پیش
حالا که بحث switch هست یه نکته هم بگم که بعضی جاها بکار میاد. اگه break نکنی بعد از case درست case های بعدی هم اجرا میشن.مثلا پنج تا case داری ,case 1,case2,case 3,case4,case 5 و در case 3 شرط برقراره. اگه break کنی فقط case 3 اجرا میشه ولی اگه break نکنی case 3,case4,case 5 اجرا میشن.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .