آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

behnam2000  8 سال پیش  8 سال پیش
+29 0

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

جلسه اول-آشنایی مختصری با جاوا (?Why? What? How)-->تکمیل شد

جلسه دوم-اجرای اولین برنامه جاوا+یک سری اصول کلی-->تکمیل شد

جلسه سوم-انواع داده ها در جاوا-->تکمیل شد

جلسه چهارم-تبدیل نوع(Type Conversion) و Type Casting در جاوا-->تکمیل شد

جلسه پنجم-عملگرها در جاوا-->تکمیل شد

 جلسه ششم-دستورات کنترلی در جاوا-->در حال تکمیل

 {توجه ویژه}

«دوستان لطفا اگر در مورد هر جلسه از آموزش ها کاستی متوجه شدید که به ذهن بنده نرسیده و می بایست موضوعی توضیح داده میشد ولی از قلم افتاده حتما و حتما آن را در زیر جلسه مربوطه از طریق کامنت اطلاع رسانی کنید تا جلسات آموزش آپدیت و کامل تر شوند.»

 اگر در مورد هر یک از جلسات آپدیتی انجام بگیرد در ابتدای جلسه مربوطه اطلاع رسانی می شود.

+4 0
موفق باشی دوست عزیز یاد دادن خودش یک نوع تمرینه و باعث میشه ک آدم خودشم بهتربه عمقه مطلب پی ببره و ملکه ذهنش بشه (8 سال پیش)
0 0
یا دوستان اصلا وقت نمی کنند به انجمن سر بزنند و یا به این آموزش ها توجه و اهمیتی نمی دهند. تا به حال که حمایت چندانی بابت ارایه آموزش جاوا از طرف کاربران ندیدم.با این اوضاع بعید میدونم به ادامه آموزش ها ادامه بدم! (8 سال پیش)
0 0
یا دوستان اصلا وقت نمی کنند به انجمن سر بزنند و یا به این آموزش ها توجه و اهمیتی نمی دهند. تا به حال که حمایت چندانی بابت ارایه آموزش جاوا از طرف کاربران ندیدم.با این اوضاع بعید میدونم به ادامه آموزش ها ادامه بدم! (8 سال پیش)
0 0
خیلی هم خوبه موفق باشید (8 سال پیش)
+1 0
کاربر 115178 : ممنون-اینکه مباحث مقدماتی شرح داده نشود و مستقیم به سراغ اصل مطلب برویم به نظرم اصلا کار خوبی نیست چرا که بیشتر مشکلاتی که در آینده به سراغ ما می آید گاها از عدم تسط ما بر مباحث پایه ای ناشی می شود. (8 سال پیش)
 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
behnam2000  8 سال پیش
+14 0

جلسه اول-آشنایی مختصری با جاوا (?Why? What? How)

آپدیت ها:

-در تاریخ ۲۴ تیر ۱۳۹۵    [1]-[2]

جاوا:

-یک زبان برنامه‌نویسی سطح بالاست یعنی به زبان ما انسان ها نزدیکتره پس فهمیدن و یاد گرفتن آن آسان هست.

-توسط شرکت Sun Microsystems توسعه یافت و در سال 1995 منتشر شد پس الان 21 ساله هست.

-Syntax یا همون نحوه نوشتن دستورات این زبان بسیار شبیه به زبان های C و ++C است پس اگر قبلا با سی یا سی پلاس پلاس کار کرده باشید یادگیری این زبان بسیار آسان تر و شیرین تر خواهد بود.

-این زبان با هدف "یک بار بنویسید و همه جا اجرا کنید" ایجاد شد یعنی برای توسعه دهنده اصلا مهم نیست که دستوراتی که می نویسد قرار هست بر روی چه معماری کامپیوتری (مثل Windows, Mac OS و ...) اجرا شود.

-در جاوا به منظور امنیت و فراهم نمودن قابلیت حمل برنامه ، کد منبع (source code) به کد اجرایی (executable code) کامپایل نمی شود. بلکه به بایت کد ترجمه می شود. این کار مزیت دیگری نیز دارد و عبارتست از اجرای برنامه بر روی پلتفرم های مختلف!

-یک زبان شی گرا هست. برای اینکه بتوانید شی گرایی را درک کنید بایستی با 6 مفهموم آشنا باشید. 1) آبجکت یا همون شیء

 چیه؟ 2) مفهموم کلاس؟ به چه دردی می خورد؟ چرا ایجاد می شود؟ 3) ارث بری یا وراثت یعنی چه؟ 4) مفهوم انتزاع یا تجرد یا تجرید؟ 5)  مفهوم  پلی مورفيسم یا چند ریختی؟ 6) مفهوم کپسوله سازی؟

-در جاوا امکان multi threaded programming یا multi process synchronization وجود دارد. یعنی می توانیم برنامه ای بنویسیم که در یک زمان چندین فرایند بصورت موازی با هم اجرا شوند.

سوالاتی که در همین ابتدای کار ممکن هست به ذهن شما برسد:

-JVM یا همان ماشین مجازی جاوا چیست؟ 

 داخل JRE قرار گرفته و وظیفه اجرای فایل های class. را بر عهده دارد. به عبارت دیگر JVM یک مفسر بایت کد می باشد.

 javac= is the primary Java compiler

داخل JDK قرار گرفته و وظیفه کامپایل کردن فایل های java. به class. را بر عهده دارد. یعنی فایل های منبع را به بایت کد تبدیل می کند.

-JRE و JDK؟

JDK= Java Development Kit

JDK از دو بخش تشکیل شده است: 1) کتابخانه های جاوا، کامپایلر جاوا، ابزار اشکال زدایی و دیگر ابزارهایی که در فرایند کامپایل  (source code (.java files به (byte code (.class files و در اشکال زدایی برنامه ها مورد استفاده قرار می گیرند. 2) JRE

 JRE= Java Runtime Environment

زیرمجموعه ای از JDK بوده و به هنگام نصب JDK این ابزار نیز نصب می شود و در حین running/executing بایت کد به کار گرفته می شود.پس اگر قصد داشته باشیم یک برنامه جاوا بنویسیم و آن را اجرا کنیم حتما بایستی JDK در سیستم ما نصب شده باشد. اما اگر ما فقط بخواهیم فقط یک برنامه جاوا را که توسط دیگران نوشته شده است را اجرا کنیم، JRE به تنهایی برای این کار کفایت میکند.

-Java SE/EE/ME سه پلتفرم معروف جاوا

Java SE = Standard Edition

Java EE = Enterprise Edition

Java ME = Micro Edition یا  Mobile Edition 

[1]  نسخه SE در توسعه برنامه های کاربردی دسکتاپ کاربرد دارد و شامل همه ی کتابخانه ها و API هایی هست که هر برنامه نویس جاوا بایستی آن ها را یاد بگیرد. نسخه EE برای توسعه برنامه های کاربردی که بر روی سرورها(سرویس‌دهنده) اجرا می شوند(برنامه های کاربردی تحت وب-مانند وب سایت ها) به کار می رود.برنامه هایی که توسط این نسخه توسعه می یابند معمولا تعداد کاربران زیادی دارند. نسخه ME نیز معمولا در توسعه برنامه های کاربردی موبایل به کار گرفته می شود.برنامه هایی که توسط این نسخه توسعه می یابند معمولا تعداد کاربران کمی دارند.پس در کل می توان گفت جاوا برای نیازهای مختلف، نسخه های مختلفی را برای ما فراهم می کند.

[2] مفهوم پلتفرم(Platform) و فریم ورک(Framework)

پلتفرم: بستری است که ملزومات سخت افزاری/نرم افزاری را برای اجرای یک برنامه ی کاربردی فراهم می کند.به طور مثال وقتی گفته می شود "این برنامه برای پلتفرم ویندوز ساخته شده" به این مفهوم هست که اگر بخواهیم برنامه را اجرا و استفاده نماییم حتما بایستی بستر ویندوز را مهیا کنیم.مثال هایی از سایر پلتفرم ها: پلتفرم ویندوز 8-پلتفرم ویندوز سرور-پلتفرم لینوکس سرور-پلتفرم لینوکس-پلتفرم آندروید-پلتفرم جاوا-پلتفرم  PC-پلتفرم لپ تاپ و ...

فریم ورک: مجموعه ای از کتابخانه ها،کلاس ها و توابعی از پیش تعریف شده ای که مورد نیاز مشترک اکثر توسعه دهندگان بوده و برای راحتی و صرفه جویی در وقت در اختیار توسعه دهندگان قرار میگیرد. به طور مثال گفته می شود "این برنامه با استفاده از فریم ورک MVC ساخته شده"

-NetBeans and Eclipse

دو محیط برنامه نویسی معروف هستند که در زمینه کدنویسی جاوا می توان از آنها استفاده نمود.

-جاوا در کجا به درد ما می خورد؟

جاوا در زمینه های بسیاری کاربرد دارد اما مهمترین جاهایی که از جاوا می توان استفاده نمود عبارتست از: 1) نوشتن یک برنامه تحت ویندوز 2) در توسعه اندروید بسیار کاربرد دارد و...

پایان جلسه اول

+2 0
اینکه شما وقت میزارید و مباحث رو از پایه آموزش می دید قابل تقدیر هست ولی این نکته رو در نظر بگیرید که این طور آموزش و از صفر شروع کردن کاربردی نیست هر چند زمان زیادی از شما می گیره.....به نظر من جا از صفر شروع کردن اون بخش هایی رو آموزش بدید که اکثرا مشکل دارند یا اینکه چیز های جدید و جذابی آموزش بدید که کاربران دیگر رو جذب کنه و هم مشارکت کنند.....موفق باشید (8 سال پیش)
+2 0
خیلی خوب بود ولی اگه میشه سریعتر جلسات رو آماده کنید ! (8 سال پیش)
0 0
خوب بود (8 سال پیش)
+2 0
عالیه دوست عزیز بسیار عالی توضیح دادی و از اشکال و تصاویر برای یادگیری استفاده کردی که کارو خیلی جذاب تر کرده فقط ی مورد به عنوان پیشنهاد بهتون میگم اینکه توی بحثهای خیلی مقدماتی درجا نزنین چون ما برنامه نویسا برامون خیلی جذابه ک زودتر بریم سره اصله مطلب و اصله مطلبو یا بگیریم موفق باشین (8 سال پیش)
+1 0
عالیه دوست عزیز، لطفا ادامه بدین :) (8 سال پیش)
0 0
خیلی خوبه (8 سال پیش)
پاسخ به سوال 
behnam2000  8 سال پیش
+13 0

جلسه دوم-اجرای اولین برنامه جاوا+یک سری اصول کلی 

-نصب JDK و ست کردن  environment variables:

ابتدا بایستی آخرین نسخه JDK را از سایت oracle و یا دیگر سایت ها دانلود کرده و نصب نمایید.فرایند نصب خیلی ساده می باشد.بعد از نصب نوبت ست کردن environment variables فرا می رسد.برای اینکار ابتدا در سرچ بار ویندوز عبارت Advance system settings را وارد کنید.بعد در این قسمت به تب Advanced  رفته و در این قسمت دکمه Environmental Variables را بزنید. در قسمت  System variables دکمه New را بزنید و همانند زیر باکس ها را پر کنید:

Variable name  : JAVA_HOME 

Variable value : C:\Program Files\Java\jdk1.8.0_73 //ممکن هست آدرس نصب+نسخه جی دی کی شما متفاوت باشد

بعد در قسمت System variables دنبال متغیر Path بروید: 

Variable name  : Path

Variable value : C:\Program Files\Java\jdk1.8.0_73\bin

 اگر قبلا متغیر  Path در قسمت System variables  ایجاد شده بود یک سمیکولن به انتهای value قبلی گذاشته و عبارت بالایی را به آن اضافه کنید.

-IDE

جالب است بدانید که در همین ابتدای کار شما بدون نصب هیچگونه محیط برنامه نویسی و به کمک notepad  می توانید کدهایی که می نویسید را کامپایل کرده و نتیجه را مشاهده نمایید. برای این منظور notepad  را باز کنید و کد زیر را درونش قرار بدهید:

 public class MyFirstJavaProgram {
	
    public static void main(String []args) {
       System.out.println("Hello World"); 
    }
} 

این فایل را با عنوان MyFirstJavaProgram.java در مسیر دلخواهی ذخیره کنید.پنجره Command Prompt را باز کرده و مسیر جاری را به دایرکتوری که فایل را درون آن ذخیره کردید انتقال بدهید (با دستور cd) به طور مثال فرض میکنیم که شما فایل را درون درایو C ذخیره کرده اید.بعد از انتقال مسیر جاری به مسیر فایل مورد نظر عبارت javac MyFirstJavaProgram.java را تایپ و در نهایت اینتر بزنید تا کد شما کامپایل گردد بعد عبارت java MyFirstJavaProgram را تایپ و مجددا اینتر را  بزنید تا برنامه اجرا شود.حال شما باید پیغام Hello World را بر روی صفحه مشاهده کنید.

ما هم اکنون به یک محیط توسعه کارامد و جامع نیاز داریم که در تولید برنامه های کاربردی از آن استفاده کنیم. همانطور که قبلا گفته شد دو محیط برنامه نویسی معروف و رایج  Eclipse و NetBeans وجود دارند که می توانیم از هر یک از آن ها با توجه به سلیقه خودمان استفاده کنیم.در اینجا من خودم محیط برنامه نویسی خاصی را معرفی و توصیه نمی کنم و انتخاب بین این دو IDE را به شما واگذار میکنم.

-سینتکس پایه جاوا:

هر زبانی برای خودش قاعده و قانونی دارد که ما بایستی اول به سراغ یادگیری آنها برویم چراکه این قوانین بایستی در همه ی پروژه مد نظر ما باشد:

-زبان جاوا case sensitive هست یعنی به حروف کوچک و بزرگ حساس می باشد. به طور مثال جاوا معنی کلمه Hello را با کلمه hello یکی نمیداند.

-حرف اول نام تمامی کلاس ها با حرف بزرگ شروع می شود.

-حرف اول نام تمامی متد ها با حرف کوچک شروع می شود.

-نام فایل برنامه بایستی دقیقا هم نام کلاس باشد.

-شناسه ها: 

یک شناسه در واقع کلمه ای هست که ما برای نامگذاری variable،method،class یا label استفاده میکنیم.

-از کلمات کلیدی و رزرو شده نباید به عنوان شناسه استفاده کرد.

-یک شناسه بایستی یا با حرف انگلیسی(A تا Z یا a تا z) و یا با علامت $ و یا با علامت underscore یعنی _ آغاز شود. و در ادامه می توانیم هر ترکیبی از کاراکترها را به منظور نامگذاری مورد استفاده قرار بگیریم.

-کلمات کلیدی در جاوا:

-کامنت ها در جاوا:

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

/* text */ -->کامنت چند خطه

// text    --> کامنت تک خطه

 public class MyFirstJavaProgram{

   /* This is my first java program.
    * This will print 'Hello World' as the output
    * This is an example of multi-line comments.
    */

    public static void main(String []args){
       // This is an example of single line comment
       /* This is also an example of single line comment. */
       System.out.println("Hello World"); 
    }
} 

-ساختار کلی یک برنامه جاوا:

 class class_name
{
    public static void main(String args[])
    {
        program-content
    }
}

پایان جلسه دوم

+5 0
واقعا دستتون درد نکنه. خدا خیرتون بده. (8 سال پیش)
+1 0
بسیار عالی دوست عزیز معلومه ک میخوایی جاوارو کامل و کاربردی یاد بدین موفق باشین (8 سال پیش)
0 0
خیلی خوب بود و با جزییات.ممنون (8 سال پیش)
پاسخ به سوال 
behnam2000  8 سال پیش
+11 0

جلسه سوم-انواع داده ها در جاوا

در جاوا هشت نوع داده ی اولیه  وجود دارد که ذاتا توسط زبان برنامه نویسی پشتیبانی می شوند و از پیش در زبان تعریف شده اند. نوع داده غیر اولیه نیز با استفاده از data type های اولیه تعریف می شود.

-هشت نوع داده ی اولیه در جاوا:

byte short int long float double boolean char 

byte:

-سایز: 8 بیت(1 بایت)

-رنج: از 128- تا 127+

-مقدار پیشفرض: 0

-مثال: byte a = 100 , byte b = -50

short:

-سایز: 16 بیت(2 بایت)

-رنج: از 32,768- تا 32,767+

-مقدار پیشفرض: 0

-مثال: short s = 10000, short r = -20000

int:

-سایز: 32 بیت(4 بایت)

-رنج: از 2,147,483,648- تا 2,147,483,647+

-مقدار پیشفرض: 0

-مثال: int a = 100000, int b = -200000

long:

-سایز: 64 بیت(8 بایت)

-رنج: از 9,223,372,036,854,775,808- تا 9,223,372,036,854,775,807+

-مقدار پیشفرض: 0L

-مثال: long a = 100000L, long b = -200000L

float:

-سایز: 32 بیت(4 بایت)

-رنج: از 1.40e-45 تا 3.40e+38

-مقدار پیشفرض: 0.0f

-مثال: float f1 = 234.5f

double:

-سایز: 64 بیت(8 بایت)

-رنج: از 4.9e-324 تا 1.8e+308

-مقدار پیشفرض: 0.0d

-مثال: double d1 = 123.4

boolean:

 -سایز: 1 بیت

-رنج: فقط دو مقدار ممکن وجود دارد، true یا false

-مقدار پیشفرض: false

-مثال: boolean one = true

char:

-سایز: 16 بیت(2 بایت)

-رنج: (0-65,535) از 'u0000\' تا 'uffff\'

-مثال: char letterA ='A'

در استاندارد Unicode یک کاراکتر توسط عددی در مبنای 16 بیان میشود، به طور مثال مقدار 0x0041 یا 'u0041\' نمایش دهنده کاراکتر لاتین A می باشد. پس اگر ما 16 بیت در اختیار داشته باشیم می توانیم 2 بتوان 16 (65,536) کاراکتر را فراهم کنیم.

-جدول اسکی:

پایان جلسه سوم

+3 0
سلام --> میگم که تو برنامه کاریتون وقفه ای ایجاد نشه؟؟♥♥♥♥♥ (8 سال پیش)
+4 0
باز هم تشکر که به فکر پیشرفت دوستان هستی.واقعا جبرانش برام سخته. ممنــــــــــــــــــون.!!! (8 سال پیش)
+3 0
ممنون دوست عزیز.نیازی به جبران نیست.همین که می بینم دوستان از آموزش ها راضی هستند و استفاده میکنند برام کافیه.وقفه پیش اومدن بین آموزش ها نیز به خاطر مشغله کاری که دارم هست.ان شاء الله سعی میکنم طی دو روز یا نهایتا سه روز مباحث یک جلسه را آماده کنم. (8 سال پیش)
0 0
حالا ما گفتیم سریع آموزش هارو بزارید ولی نه اینطور که از کار و زندگیتون بزنید ! هر موقع که وقت کردید آموزش هارو بزارید! ممنون (8 سال پیش)
پاسخ به سوال 
behnam2000  8 سال پیش
+10 0

جلسه چهارم-تبدیل نوع(Type Conversion) و Type Casting در جاوا

Type Conversion به صورت اتوماتیک توسط کامپایلر انجام میگیرد در حالی که Type Casting توسط برنامه نویس صورت میگیرد.

به مثال زیر توجه نمایید:

 class DatatypeCasting
{
    public static void main(String arg[])
    {
        byte   b = 50;
        short  s = 4125;
        int    i = 800000;
        long   l = 107343L;
	float  f = 25.0f;
        double d = 327.98;
	char   c = 'A';
          
        s = b;    
        i = s;    
        l = i;       
        f = i;
        d = f;
       
        System.out.println("b = " + b ); //b=50    
        System.out.println("s = " + s ); //s=50    
        System.out.println("i = " + i ); //i=50    
        System.out.println("l = " + l ); //l=50    
        System.out.println("d = " + d ); //d = 50.0
        System.out.println("f = " + f ); //f = 50.0

	i=120;
        b=i;    //error: incompatible types
	b=-129; //error: incompatible types
        b=-128; //ok
        b=+127; //ok
        b=+128; //error: incompatible types
		
        b=(byte)i;		
        System.out.println("b = " + b ); //b = 120
		
        i=-385;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = 127 
        
        i=-257;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = -1
        
        i=-256;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = 0
        
        i=-130;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = 126
        
        i=-129;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = 127
        
        i=-128;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = -128  
        
        i=+127;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = 127
        
        i=+128;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = -128
        
        i=+129;
        b=(byte)i;  
        System.out.println("b = " + b ); //b = -127
		
	d = 323.142;
        b=(byte)d;
        System.out.println("b = " + b ); //b = 67
		
	d = 323;
        b=(byte)d;      
        System.out.println("b = " + b ); //b = 67
		
	d = 323.142;
        i=(int) d;        
        System.out.println("i = " + i ); //i = 323  
		
        i = 81;  
        c=(char) i;
        System.out.println("c = " + c ); //c = Q
 
    }
}

پایان جلسه چهارم

+3 0
♥♥♥♥ TankYou ♥♥♥♥ (8 سال پیش)
پاسخ به سوال 
behnam2000  8 سال پیش
+11 0

جلسه پنجم-عملگرها در جاوا

-عملگرها: سمبل های خاصی هستند که عملیات مشخصی را بر روی عملوندها ایفا کرده و نتیجه را پیدا می کنند. به طور مثال در عبارت 25 + 17 ، 17 و 25 به عنوان عملوند و + به عنوان عملگر شناخته می شوند.یک عملگر ممکن است 1 یا 2 یا 3 عملوند داشته باشد. نوع داده عملوندها در تولید مقدار خروجی نقش بسزایی داشته و به همین دلیل بایستی خیلی مورد توجه قرار گیرد.

-انواع عملگرهایی که در جاوا پشتیبانی می شود:

-عملگرهای حسابی(Arithmetic Operators)

+     -     *     /     %      ++     --     

 A + B      جمع
 A - B      تفریق
 A * B      ضرب
 B / A      تقسیم
 B % A      باقی مانده تقسیم
 B++        یک واحد افزایش
 B--        یک واحد کاهش

 

  public class ArithmeticOperators{

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     System.out.println("a + b = " + (a + b) );  //a + b = 30
     System.out.println("a - b = " + (a - b) );  //a - b = -10
     System.out.println("a * b = " + (a * b) );  //a * b = 200
     System.out.println("b / a = " + (b / a) );  //b / a = 2
     System.out.println("b % a = " + (b % a) );  //b % a = 0
     System.out.println("c % a = " + (c % a) );  //c % a = 5
     System.out.println("a++   = " +  (a++) );   //a++   = 10
     System.out.println("b--   = " +  (a--) );   //b--   = 11
     System.out.println("d++   = " +  (d++) );   //d++   = 25
     System.out.println("++d   = " +  (++d) );   //++d   = 27
     
  }
} 

 

-عملگرهای رابطه ای(Relational Operators)

==  !=  >  <  >=  <=  

A == B   مساوی بودن 
A != B   نامساوی بودن 
A > B    بزرگتر بودن
A < B    کوچکتر بودن
A >= B   بزرگتر یا مساوی بودن
A <= B   کوچکتر یا مساوی بودن

 public class RelationalOperators{

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );    // a == b = false
     System.out.println("a != b = " + (a != b) );    // a != b = true
     System.out.println("a > b = " + (a > b) );      // a > b = false
     System.out.println("a < b = " + (a < b) );      // a < b = true
     System.out.println("b >= a = " + (b >= a) );    // b >= a = true
     System.out.println("b <= a = " + (b <= a) );    // b <= a = false
  }
} 

-عملگرهای بیتی(Bitwise Operators) این عملگرها عملیات را به صورت بیت به بیت انجام می دهند.

&  |  ^  ~  <<  >>  >>> 

& (بیتی and)                     | (بیتی or)                     ^ (بیتی xor)                     ~ (متمم بیتی)

<<(شیفت به چپ)                        n << p     بیت p به تعداد n شیفت به چپ        

>>(شیفت به راست علامت دار)          >> p     بیت p به تعداد n شیفت به راست علامت دار  

>>>(شیفت به راست بدون علامت)      >>> p   بیت p به تعداد n شیفت به راست بدون علامت        

 class BitwiseOperators
{
    public static void main(String arg[])
    {
        int a = 52; // 52 = 0011 0100 
        int b = 13; // 13 = 0000 1101 
        int c = 0;
        c = a & b; // 4  = 0000 0100   
        System.out.println("a & b = " + c); // a & b = 4
        c = a | b; // 61 = 0011 1101   
        System.out.println("a | b = " + c);  // a | b = 61
        c = a ^ b; // 57 = 0011 1001    
        System.out.println("a ^ b = " + c);  // a ^ b = 57
        c = ~a; // -4 = 1111 1011   
        System.out.println("~a = " + c);  // ~a = -53
        c = a << 2; // 208 = 1101 0000    
        System.out.println("a << 2 = " + c);  // a << 2 = 208
        c = a >> 2; // 13 = 0000 1101   
        System.out.println("a >> 2  = " + c);  // a >> 2  = 13
        c = a >>> 2; // 13 = 0000 1101 
        System.out.println("a >>> 2 = " + c);  // a >>> 2 = 13    
    }
}

-عملگرهای منطقی(Logical Operators)

&&  ||  !

&& (منطقی and)                     || (منطقی or)                     ! (منطقی not)   

            

 

 class BoolLogic
{
    public static void main(String arg[])
    {
        boolean a = true;
        boolean b = false;
        boolean c = a | b;
        boolean d = a & b;
        boolean e = a ^ b;
        boolean f = (!a & b) | (a & !b);
        boolean g = !a;
        
        System.out.println("        a = " + a);
        System.out.println("        b = " + b);
        System.out.println("      a|b = " + c);
        System.out.println("      a&b = " + d);
        System.out.println("      a^b = " + e);
        System.out.println("!a&b|a&!b = " + f);
        System.out.println("       !a = " + g);    
    }
}

خروجی:

        a = true
        b = false
        a|b = true
        a&b = false
        a^b = true
        !a&b|a&!b = true
        !a = false


 class BoolLogic
{
    public static void main(String arg[])
    {
        boolean a = true;
        boolean b = false;
        boolean c = a || b;
        boolean d = a && b;
        System.out.println("      a||b = " + c);
        System.out.println("      a&&b = " + d);
    }
}

خروجی:

       a||b = true
       a&&b = false

 

-تفاوت بین عملگرهای بیتی و منطقی:

به 4 قطعه برنامه زیر توجه نمایید:

int i = 12;
if (i == 10 & i < 9) //اجرا میشوند if  هر دو شرط بررسی می شوند و اگر هر دو درست بود دستورات داخل 
{
...
}

int i = 12; if (i == 10 && i < 9) //شرط اولی بررسی شده و در صورت نادرست بودن دیگر شرط دوم بررسی نمی شود { ... }

int i = 12; if (i == 12 | i > 10) // هر دو شرط بررسی میشوند { ... }

int i = 12; if (i == 12 || i > 10) // شرط اولی بررسی شده و در صورت برقراری دیگر شرط دوم بررسی نمی شود { ... }

-عملگرهای انتساب(Assignment Operators)

 =  +=  -=  *=  /=  %=  <<=  >>=  &=  ^=  |=

C = A + B 
C += A  معادل  C = C + A
C -= A  معادل  C = C - A
C *= A  معادل  C = C * A
C /= A  معادل  C = C / A
C %= A  معادل  C = C % A
C <<= 2 معادل  C = C << 2
C >>= 2 معادل  C = C >> 2
C &= 2  معادل  C = C & 2
C ^= 2  معادل  C = C ^ 2
C |= 2  معادل  C = C | 2  


 public class AssignmentOperators {

  public static void main(String args[]) {
     int a = 10;	
     int b = 20;
     int c = 0;

     c = a + b;
     System.out.println("c = a + b = " + c );  // c = a + b = 30

     c += a ;
     System.out.println("c += a  = " + c );  // c += a  = 40

     c -= a ;
     System.out.println("c -= a = " + c );  // c -= a = 30

     c *= a ;
     System.out.println("c *= a = " + c );  // c *= a = 300

     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );  // c /= a = 1

     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c ); // c %= a  = 5

     c <<= 2 ;
     System.out.println("c <<= 2 = " + c ); // c <<= 2 = 20

     c >>= 2 ;
     System.out.println("c >>= 2 = " + c ); // c >>= 2 = 5

     c >>= 2 ;
     System.out.println("c >>= a = " + c );  // c >>= 2 = 1

     c &= a ;
     System.out.println("c &= 2  = " + c );  // c &= a  = 0
  
     c ^= a ;
     System.out.println("c ^= a   = " + c );  // c ^= a   = 10

     c |= a ;
     System.out.println("c |= a   = " + c );  // c |= a   = 10
  }
} 

-جدول تقدم عملگرها:


از بالا به پایین اولویت کاهش می یابد، عملگرهای قرار گرفته در یک سطر نیز اولویت یکسانی دارند.به طور مثال در عبارت زیر بر اساس اولویت عملگر + و * حاصل 13 می شود نه 20. چرا که به دلیل اولویت بالای عملگر * نسبت به عملگر + ابتدا 2*3 حساب و حاصلش با عدد 7 جمع میگردد.

 x = 7 + 3 * 2;

پایان جلسه پنجم

+1 0
دستت درد نکنه برادر .... خیلی زحمت میکشید ... (8 سال پیش)
+4 0
♥♥♥♥ Tank you ♥♥♥♥ (8 سال پیش)
0 0
عالی بود (8 سال پیش)
0 0
سلام واقعا عالیه ٬‌ خیلی ریشه ای و کامل آموزش می دهدید , حتما ادامه بدهید. (8 سال پیش)
+1 0
سلام واقعا عالیه ٬‌ خیلی ریشه ای و کامل آموزش می دهدید , حتما ادامه بدهید. God bless you (8 سال پیش)
پاسخ به سوال 
behnam2000  8 سال پیش
+9 0

جلسه ششم-دستورات کنترلی در جاوا

دستورات کنترلی در جاوا را می توان در سه دسته زیر تقسیم بندی کرد:

-دستورات انتخاب-->  if-else  و  switch

 if(شرط)
    {
        دستور1;
    }
    else
    {
        دستور2;
    }

شرط بایستی یک عبارت بولی باشد یعنی حاصلش true یا false باشد.این نکته را هم به یاد داشته باشید که هر مقدار دارای ارزش غیر صفر اگر به عنوان شرط درج شود معادل true خواهد بود.مثلا (1)if  یا (100)if یا ... معادل (if(true و (0)if معادل (if(false می باشد. در صورت true بودن شرط، دستور 1 اجرا و در صورت false بودن دستور 2 اجرا خواهد شد.قسمت else کاملا اختیاری بوده و می توان به صورت زیر نیز از دستور if استفاده کرد:

 if(شرط)
{
دستورات مورد نظر;
}
 


class PrintPassFail { public static void main(String arg[]) { int marks = 62; if(marks > 35) { System.out.println("Pass"); } else { System.out.println("Fail"); } } }
 خروجی: Pass

توجه کنید که اگر ما بخواهیم بیش از یک دستور در صورت برقراری یا عدم برقراری شرط انجام شود در این صورت بایستی حتما بعد از دستور if ،دستورات را  بین } و { قرار دهیم.اما در صورتی که فقط یک دستور را بخواهیم اجرا کنیم استفاده یا عدم استفاده از این علامت ها تاثیری در خروجی نخواهد داشت.

int a = 10;
int b = 5;
if (a > b)
    System.out.println("a is greater than b");
else
    System.out.println("b is greate than a");
خروجی: a is greater than b
int a = 10; int b = 5; if (a > b) { System.out.println("a is greater than b"); } else { System.out.println("b is greate than a"); }
خروجی: a is greater than b



int a = 10; int b = 5; if (a > b) System.out.println("a is greater than b"); System.out.println("I am not in if block"); خروجی: a is greater than b I am not in if block

دستور if گاها بصورت if...else if...else نیز بکار میرود:

 public class Test {

   public static void main(String args[]){
      int x = 30;

      if( x == 10 ){
         System.out.print("Value of X is 10");
      }else if( x == 20 ){
         System.out.print("Value of X is 20");
      }else if( x == 30 ){
         System.out.print("Value of X is 30");
      }else{
         System.out.print("This is else statement");
      }
   }
}

خروجی: Value of X is 30

دستور if را نیز می توان بصورت تو در تو استفاده نمود:

 public class Test {

   public static void main(String args[]){
      int x = 30;
      int y = 10;

      if( x == 30 ){
         if( y == 10 ){
             System.out.print("X = 30 and Y = 10");
          }
       }
    }
}

خروجی: X = 30 and Y = 10

دستور switch:

  switch(expression)
    {
        case value1:
            // statement1;
            break;
        case value2:
            // statement2;
            break;
        default:
            // statement3;
            break;
    }

-expression بایستی حتما از نوع byte یا short یا int یا char باشد. البته از JDK7 به بعد نوع String نیز پشتیبانی می شود.

-از case های تکراری بایستی اجتناب شود.

-نوع هر یک از value ها بایستی با نوع expression سازگار باشد.

-با اجرا شدن دستور break در داخل case،  اجرای دستور switch خاتمه می یابد. استفاده از دستور break  اختیاری است.

-روال کار بدین صورت است که ابتدا مقدار expression  ارزیابی شده و سپس با هر یک از مقدار case ها مقایسه شده و در  صورت پیدا کردن case مورد نظر، دستور مربوطه آن case اجرا می شود.در صورتی که case مورد نظر پیدا نشود، دستور قرار گرفته در قسمت default اجرا می شود.استفاده از دستور default  به همراه switch ضروری نیست.

  class PrintDirection
{
    public static void main(String arg[])
    {
        char direction = 'S';
        
        switch( direction )
        {
            case 'E': 
                System.out.println("East"); 
                break;
            case 'W': 
                System.out.println("West"); 
                break;
            case 'S': 
                System.out.println("South"); 
                break;
            case 'N': 
                System.out.println("North"); 
                break;
            default: 
                System.out.println("Unknown Direction"); 
                break;
        }
        System.out.println("After switch"); 
    
    }
}

خروجی: South
       After switch

مثالی در رابطه با استفاده یا عدم استفاده از دستور break:

 class Test
{
    public static void main(String arg[])
    {
        char alphabet = 'A';
        
        switch(alphabet)
        {
            case 'A':
                System.out.println("The alphabet '" + alphabet + "' is in first four letters");
            case 'E':
            case 'I':
            case 'O':
            case 'U':
                System.out.println("The alphabet '" + alphabet + "' is an vowel");
                break;
            case 'B':
            case 'C':
            case 'D':
                System.out.println("The alphabet '" + alphabet + "' is in first four letters");
            default:
                System.out.println("The alphabet '" + alphabet + "' is a consonant");
        }    
    }
}

خروجی: The alphabet 'A' is in first four letters The alphabet 'A' is an vowel

 

-دستورات تکرار یا حلقه-->  while  و  do-while  و  for

به طور مثال اگر ما بخواهیم 10 بار کلمه Hello را در خروجی چاپ کنیم اولین ایده ای که به ذهن ما میرسد ممکن است به صورت زیر باشد:

System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");

اگر چه این روش خروجی مناسب مد نظر ما را تولید می کند اما استفاده از این روش معایبی را به دنبال خواهد داشت. از لحاظ زمانی استفاده از این روش وقت گیر و در عمل ناکارامد بوده و یک سری کدهای تکراری نوشته میشود.و یا اگر مثلا ما بخواهیم به جای کلمه Hello  کلمه ی Hello World را در خروجی داشته باشیم بایستی همه ی 10 خط را تغییر بدهیم.یا اگر بخواهیم به جای 10 بار 100 یا 1000 بار کلمه Hello  را در خروجی چاپ کنیم نوشتن کدهای مربوطه برایمان وقت گیر خواهد بود.اگر ما تعداد دفعات چاپ کلمه را از کاربر دریافت کنیم در اینصورت روش فوق آیا می تواند جوابگو باشد؟ با توجه به توضیحاتی که داده شد این رویکرد با شکست مواجه شده و بایستی به فکر رویکردهای جایگزین باشیم:

دستور while:

 while(عبارت بولی)
{
   //دستورات مورد نظر
}

تا زمانی که حاصل عبارت بولی true باشد دستورات داخل حلقه اجرا خواهد شد.

 public class Test {

   public static void main(String args[]) {
      int x = 10;

      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
} 


خروجی : value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19

دستور do-while:

این دستور مشابه دستور while بوده با این تفاوت که حلقه do-while حداقل یک بار اجرا می شود. به عبارت دیگر اگر همان ابتدای کار حاصل عبارت بولی نادرست هم باشد باز دستورات یک بار اجرا خواهند شد.

 do
{
   //دستورات مورد نظر
}while(عبارت بولی);



public class Test { public static void main(String args[]){ int x = 10; do{ System.out.print("value of x : " + x ); x++; System.out.print("\n"); }while( x < 20 ); } } خروجی: value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19

دستور for

for(initialization; Boolean_expression; update)
{
   //Statements
}

 

 

 

-دستورات پرش-->   break  و  continue  و  return

در حال تکمیل...

+4 0
سلام --> آموزشهاتون چی شد. (8 سال پیش)
+1 0
خیلی عالیه . ادامه بدید لطفا (8 سال پیش)

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