جاوا از ابتدا، بخش یازدهم

منطق شرطی-IF ها

برنامه نویسی ای که در حال حاضر انجام می دهید، برنامه نویسی پی در پی(sequential) است، یعنی کد از بالا تا پایین اجرا می شود و از اولین خطی که شما نوشته اید اجرا شده و در آخرین خط نوشته شده توسط شما به پایان می رسد و یک مسیر بالا به پایین خطی را طی کرده و همه کد های نوشته شده توسط شما اجرا می شوند. اما ما همیشه چنین چیزی را نمی خواهیم. برای مثال وقتی می خواهیم اگر سن یک فرد بالای یک عددی بود، یک پیغام برای او چاپ شود و اگر پایین آن عدد بود، پیغام دیگری برای او چاپ شود، باید یک تکه از کد اجرا نشود. پس باید جریان اجرای برنامه را به دست بگیریم. این کار را می توان با استفاده از شرط ها انجام داد.

تمام منطق شرطی در اصل به معنای کلمه IF(اگر) برمی گردد. IF(اگر) کاربر سنش بیشتر از ۲۰ است، یک پیغام چاپ شود، و IF(اگر) کاربر سنش کمتر از ۲۰ است، پیغام دیگری برای او چاپ شود. خوشبختانه استفاده از منطق شرطی در جاوا بسیار ساده است. اینجا با IF شروع می کنیم:

IF:

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

if(شرط){

}

از واژه if استفاده کرده و در مقابل آن پرانتز باز و بسته می گذاریم. سپس کدی که می خواهم در صورت برقراری شرط اجرا شود را بین دو علامت “}” و “{” می نوسیم. شرط مورد نظر هم در میان دو پرانتز نوشته می شود:

 

if(user<18){

}

شرط ما در بالا این است که اگر متغیر user کوچکتر از ۱۸ است، تکه کد مورد نظر اجرا شود که کوچکتر بودن را با علامت “>” نشان داده ایم. حال برای مثال کد مورد نظر در صورت درست بودن شرط می تواند نمایش یک پیغام باشد:

 

if(user<18){
System.out.println("User is less than 18");
}

 

اگز user کوچکتر از ۱۸ نباشد، شرط برقرار نبوده و کد داخل براکت ها اجرا نشده و از ادامه آن بخش کد دیگر کد ها تا آخرین خط اجرا می شوند. هر آنچه که شما داخل براکت های IF می نویسید در صورتی اجرا می شوند که شرط، برقرار باشد. همانند بالا می توانید این بار بزرگتر بودن user از ۱۸ را چک کنید برای این کار کافیست از علامت بزرگتر(“>”) استفاده کنید:

if(user>18){
System.out.println("User is greater than 18");
}

حال اگر بخواهیم بررسی کنیم که user بزرگتر از ۱۸ یا مساوی آن است، باید از دو علامت بزرگتر و مساوی(“=<“) استفاده کنیم:

 

if(user>=18){
System.out.println("User is greater than 18 or equal to 18");
}

برای بررسی کوچکتر یا مساوی بودن، باید از دو علامت کوچکتر و مساوی(“=>”) استفاده کنیم:

if(user<=18){
System.out.println("User is less than 18 or equal to 18");
}

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

یک پروژه جدید در Netbeans اینجاد کنید.(در پروژه ما نامی که برای package،  انتخاب کردیم conditionallogic و نام کلاس اصلی IFStatements است.)

if_statement

یک متغیر integer تعریف کردیم و مقدار ۱۷ را در آن ذخیره کرده ایم. شرط ما کوچکتر بودن user از عدد ۱۸ است که درست است و باید پیغام نوشته شده چاپ شود. برنامه را اجرا کنید و خروجی را مشاهده کنید:

if_statement_output

حال مقداری که در user ذخیره کردید را از ۱۷ به ۱۸ تغییر دهید و برنامه را اجرا کنید و نتیجه را ببینید:

if_statement_output_2

پس برنامه بدون هیچ خطایی اجرا شد. فقط پیغامی که نوشتیم چاپ نشد و این به دلیل برقرار نبودن شرط ماست.

[divider]

تمرین

  • جای علامت کوچکتر را با کوچکترمساوی عوض کنید و پیغامی که چاپ می شود را عوض کنید و هر چه می خواهید بنویسید. برنامه را اجرا کنید، پیغامی که نوشتید چاپ شد؟
  • مقدار ذخیره شده در user را به ۲۰ تغییر دهید، برنامه را اجرا کنید. پیغامی که نوشتید چاپ شد؟

در یک برنامه می توانید بیشتر از یک IF داشته باشید. کد زیر را امتحان کنید:

if_statement_2

این بار دو IF Statement داریم. اولین شرط بررسی می کند که user کوچکتر یا برابر ۱۸ است یا نه و دومین شرط هم بررسی می کند که user بزرگتر از ۱۸ است یا خیر. خروجی را مشاهده کنید:

if_statement_output_3

مقدار user را به ۲۰ تغییر می دهیم و خروجی را می بینیم:

if_statement_output_4

پس می بینید که فقط یکی از آن ها پیغام را چاپ می کند زیرا شرط برای یکی از آن ها برقرار است اگر شرط ها را طوری می نوشتید که برای هر دو برقرار بود هر دو پیغام چاپ می شد.

در بخش بعد، منطق های شرطی را ادامه می دهیم.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *