من مطمئن نیستم ولی به این شکل بنویسید ببینید درست میشه؟ case < num2: و ...
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
دوستان کمی من رو راهنمایی کنید
مدیریت گفتگو
آخرین تغییر: 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");
}
لطفا به قسمت بعدی نگاه بندازید که ببینید نظرتون درست فهمیدم
پاسخها 1
ببخشید من دقیقا متوجه نشدم یعنی شما عرض میفرمایید به صورت زیر بنویسم
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");
}
اگر اینطور هست که به طور کلی ارور میده . من عذر میخوام چون خیلی تازه کارم دقیقا منظورتون رو متوجه نمیشم
نظرات
اگر منظورتون این هستش که myNumber رو از جلو case حذف کنم و فقط < num2 بمونه من انجام دادم ولی بازم ارور میده
با سوئیچ چنین کاری نمیشه کرد چون شرط یکسانه و case ها هم باید از قبل قابل تعیین باشه ولی برای کاره شما این کار اصولی نیست
می تونید از Do While استفاده کنید
یعنی در سوئیچ شرط به طور کلی یکسانه هستش!؟! ممنون.
پس از سوئیچ فقط در مواقعی که دارای شرطی یکسان باشیم میتونیم استفاده کنیم؟ مثل مثال خود استاد در آموزشها؟
شما هدفت چیه ؟ با سوییچ میخوای مقایسه کنی یا میخوای برابری رو چک کنی؟ و کدوم درست عمل نمیکنه؟
من هدفم این بود که کدی رو که با if نوشتم رو عینا با switch بنویسم
بله برای سوئچ شرط و شروط ها یکسانه و برای اینه که بگی
یه شرط ثابت (حالا اگه این بود = Case ، اینکارو انجام بده ) و ....
واقعا ممنون دوستان که اینجا بدون هیچ چشم داشتی به همه کمک میکنید
پس کلا چنین کاری رو با switch نمیشه انجام داد.
حالا که بحث switch هست یه نکته هم بگم که بعضی جاها بکار میاد. اگه break نکنی بعد از case درست case های بعدی هم اجرا میشن.مثلا پنج تا case داری ,case 1,case2,case 3,case4,case 5 و در case 3 شرط برقراره. اگه break کنی فقط case 3 اجرا میشه ولی اگه break نکنی case 3,case4,case 5 اجرا میشن.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات