استفاده از دستور شرطی if برای String در جاوا نت بینز

سلام.

آیا می توان دستور if را برای String به اجرا در آورد؟همان طور که می توان از دستور شرطی switch بهره برد.

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام،بله می شود

String str;
str="john";
if(str=="john")
{//first work to do

}
else{
//second work to do
}
sokanacademy forum
کاربر سکان آکادمی 7 سال پیش

استفاده دستور == برای یک نمونه از کلاس String اشتباه است و باید از دستور equals استفاده کنید(در مثال فوق به جواب درست میرسیم اما اگر دو شی از نوع رشته با عملگر == مورد بررسی قرار بگیرند، برنامه درست عمل نمیکند)

اما دلیل : خیلی ساده است زمانی که شی یا نمونه‌ای از کلاس String را با عملگر == بررسی میکنیم مقدار یا رشته درون نمونه بررسی نمیشود بلکه آدرس خانه حافظه آن بررسی میشود، برنامه آدرس خانه حافظه دو شی را بررسی میکند اگر با هم برابر بودند بدنه if اجرا میشود واگرنه else.

String str;
str="john";
if(str.equals("john"))
{  //first work to do
}
else{
  //second work to do
}

موفق باشید.

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

برای اطلاع عرض کنم که بهتر است از متد equal استفاده کنید . زیرا در کلاس String هنگامی که شی ساخته میشود جاوا علاوه بر مقدار شی به جایگاه آن در حافظه هم توجه می کند . بنابرین در دستور if بالا حتی اگه از نظر منطقی درست باشد شما با جواب false مواجه خواهید شد

online-support-icon