مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

آموزش تشخیص اعداد فرد در جاوا : بهترین راه تشخیص عدد فرد

اگر بخواهید برنامه ای بنویسید که مشخص کند که عددی فرد است یا خیر شاید شما کد زیر را بنویسید.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
public boolean oddOrNot(int num) {
	return num % 2 == 1;
}

آیا این برنامه درست است؟ در نگاه اول شاید تصور کنید که این برنامه درست است ولی این کد نوشته شده همیشه جواب درست را به ما نمی دهد.

در دوره آموزش جاوا ( آموزش برنامه نویسی جاوا ) این موارد بصورت رایگان آموزش داده شده است

شاید تعجب کنید که یک خط کد به این سادگی چطور ممکن است که جواب اشتباه دهد. اگر مقدار متغیر num برابر یک عدد فرد منفی مانند -9 باشد چه پیش خواهد آمد؟ نتیجه تابع false خواهد بود در حالی که عدد -9 عددی فرد است. برای راه بهتر از کد زیر استفاده کنید.

public boolean oddOrNot(int num) {
	 return (num & 1) != 0;
}

کد بالا علاوه بر این که می تواند اعداد منفی فرد را تشخیص دهد به صورت مناسب بهینه سازی شده است و سرعت بالاتری خواهد داشت. دلیل این کار هم این است که در برنامه دوم از and بیتی استفاده شده است. پس لازم نیست که عمل تقسیم و باقیمانده گیری انجام نمی شود. پس سرعت بسیار بالا است. عمل and بیتی به این شکل است که بیت به بیت دو عدد را با هم به صورت منطقی and می کند و نتیجه را مشخص می کند. چون این عمل در سطح سخت افزار فقط یک عمل است پس سرعت بالاتر است.

یادگیری برنامه نویسی برای متخصصین حوزه کامپیوتر این روزها یک الزام به حساب می آید. از جمله محبوب ترین زبان های برنامه نویسی دنیا می توانیم به زبان برنامه نویسی سی شارپ ، زبان برنامه نویسی جاوا ، زبان برنامه نویسی پایتون ، زبان برنامه نویسی سی پلاس پلاس و زبان برنامه نویسی SQL ( لازمه هر زبان دیگری ) و زبان برنامه نویسی PHP اشاره کنیم.

برای آموزش برنامه نویسی می توانید با خیال راحت در قالب دوره های آموزش برنامه نویسی سایت توسینسو ، آموزش سی شارپ ، آموزش جاوا ، آموزش پایتون ، آموزش جنگو ، آموزش PHP ،  آموزش جاوا اسکریپت ، آموزش برنامه نویسی اندروید ، آموزش SQL و آموزش MySQL را بصورت جامع و حرفه ای آموزش ببینید.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات