زبانهای برنامهنویسی از دستورات کنترلی برای کنترل جریان اجرای برنامه بر اساس شرایط خاص استفاده میکنند. این دستورات باعث میشوند برنامه مسیر اجرا را تغییر داده و بر اساس وضعیت جاری، به شاخههای مختلف برود یا بخشی از کد را رد کند. جاوا چندین دستور کنترل جریان برای مدیریت روند اجرای برنامه در اختیار برنامهنویس قرار میدهد، از جمله:
• دستورات شرطی: شامل if، if-else، if تو در تو (nested-if) و if-else-if
• switch-case: برای بررسی چندین مقدار ثابت
• دستورات پرش: شامل break، continue، return
انواع دستورات تصمیمگیری در جاوا:
• if• if-else
• nested-if
• if-else-if
• switch-case
• دستورات پرشی (break، continue، return)
در جدول زیر، کاربرد هر یک از این دستورات به همراه نمونهای از نحوه استفاده آورده شده است:

دستور if در جاوا
دستور if سادهترین نوع تصمیمگیری در زبان جاوا است. از این دستور برای تعیین اجرای یک یا چند خط کد استفاده میشود؛ یعنی اگر شرط تعیینشده برقرار باشد، کدهای درون بلوک if اجرا میشوند، در غیر این صورت از آنها عبور میشود.نحوه نوشتار (Syntax):
Statements to execute if//
condition is true //
{
در اینجا، condition یا همان شرط، باید به یک مقدار boolean تبدیل شود (true یا false). اگر شرط true باشد، بلوک داخل if اجرا میشود. در غیر این صورت، از آن عبور میکند
نکته مهم: اگر از آکولاد {} استفاده نکنید، فقط خط اول بعد از if بهعنوان بخشی از بلوک if در نظر گرفته میشود.
مثال:
statement1; // Belongs to the if block
statement2; // Does NOT belong to the if block
آنچه در بالا رخ میدهد:
• اگر شرط true باشد، فقط statement1 اجرا میشود.
• statement2 بدون توجه به شرط همیشه اجرا خواهد شد؛ چون خارج از بلوک if است.
نمودار جریان اجرای if
در دیاگرام زیر، روند اجرای یک دستور if را میتوان اینگونه خلاصه کرد:1. شرط بررسی میشود.
2. اگر true بود → بلوک اجرا میشود.
3. اگر false بود → از بلوک عبور میشود.

مثال: دستور if بدون آکولاد
در برنامه زیر فقط یک خط بعد از if به عنوان بخشی از آن در نظر گرفته میشود:Java program to illustrate// if statement without curly block// ;*.import java.util } class Geeks public static void main(String args[]) } ;int i = 10 if (i < 15) part of if block(immediate one statement// after if condition)// ;System.out.println("Inside If block") always executes as it is outside of if block// ;System.out.println("10 is less than 15") This statement will be executed// as if considers one statement by default again// below statement is outside of if block// ;System.out.println("I am Not in if") { {
خروجی:
Inside If block 10 is less than 15 I am Not in if
۲. دستور if-else در جاوا
دستور if بهتنهایی مشخص میکند که اگر یک شرط برقرار باشد (یعنی مقدارش true باشد)، یک بلوک از کد اجرا میشود؛ در غیر این صورت هیچ اتفاقی نمیافتد.اما اگر بخواهیم در صورت برقرار نبودن شرط (false بودن) هم کار خاصی انجام دهیم، اینجاست که دستور else وارد عمل میشود.
با استفاده از else میتوانیم تعیین کنیم که اگر شرط برقرار نبود، یک بلوک کد دیگر اجرا شود.
نحوه نوشتار (Syntax):
if(condition){
// Executes this block if
// condition is true
}else{
// Executes this block if
// condition is false
{
نمودار جریان اجرای if-else
در دیاگرام این نوع تصمیمگیری، ابتدا شرط بررسی میشود:• اگر true باشد، بلوک if اجرا میشود.
• اگر false باشد، برنامه مستقیماً به سراغ بلوک else میرود.

مثال: استفاده از if-else برای تصمیمگیری دوطرفه
Java program to demonstrate// the working of if-else statement// ;*.import java.util } class Geeks public static void main(String args[]) } ;int i = 10 if (i < 15) ;System.out.println("i is smaller than 15") else ;System.out.println("i is greater than 15") { {
خروجی:
i is smaller than 15
چون مقدار i برابر 10 است و شرط i < 15 برقرار است، فقط بخش if اجرا میشود و به else نمیرسیم.
۳. دستور nested-if در جاوا
دستور nested-if به معنای استفاده از یک دستور if درون یک if یا else دیگر است. به عبارتی، یک شرط درون شرط دیگر بررسی میشود. زبان جاوا اجازه میدهد که در داخل یک بلوک if، شرط دیگری را نیز بررسی کنیم.این ساختار زمانی مفید است که نیاز داریم چند شرط را به ترتیب بررسی کنیم و شرط دوم فقط در صورت برقرار بودن شرط اول معنا پیدا میکند.
نحوه نوشتار (Syntax):
if (condition1) {
// Executes when condition1 is true
if (condition2)
}
// Executes when condition2 is true
{
{
نمودار جریان اجرای nested-if
در دیاگرام این ساختار:• ابتدا condition1 بررسی میشود.
• اگر true بود → سپس condition2 بررسی میشود.
• اگر هر دو true بودند → کد درونی اجرا خواهد شد.

مثال: بررسی چند شرط با استفاده از nested-if
Java program to demonstrate the//
working of nested-if statement//
;*.import java.util
}class Geeks
public static void main(String args[])
}
;int i = 10
} if (i == 10 || i < 15)
First if statement//
if (i < 15)
;System.out.println("i is smaller than 15")
Nested - if statement//
Will only be executed if statement above//
it is true//
if (i < 12)
)System.out.println
;("i is smaller than 12 too"
{
} else
;System.out.println("i is greater than 15")
{
{
{
خروجی:
i is smaller than 15 i is smaller than 12 too
چون مقدار i برابر ۱۰ است، شرط اول (i == 10 || i < 15) برقرار است.
سپس شرط دوم (i < 15) و شرط سوم (i < 12) نیز برقرار هستند، بنابراین هر دو پیام چاپ میشوند.
4. نردبان تصمیمگیری if-else-if در جاوا
ساختار if-else-if (یا به اصطلاح نردبان if) زمانی کاربرد دارد که بخواهیم بین چندین گزینه تصمیمگیری کنیم.در این ساختار:
• شرطها از بالا به پایین بررسی میشوند.
• به محض اینکه اولین شرطی که مقدار آن true باشد پیدا شود، فقط بلوک مربوط به همان شرط اجرا میشود و بقیه شرطها نادیده گرفته میشوند.
• اگر هیچکدام از شرطها برقرار نباشد، در نهایت بخش else اجرا خواهد شد.
شما میتوانید به تعداد دلخواه از else if استفاده کنید، اما فقط یک بلوک else مجاز است.
نحوه نوشتار (Syntax):
if (condition1) {
// code to be executed if condition1 is true
} else if (condition2) {
// code to be executed if condition2 is true
} else {
// code to be executed if all conditions are false
{
نمودار جریان اجرای if-else-if ladder
در دیاگرام این ساختار، شرطها به ترتیب بررسی میشوند:1. اگر شرط اول برقرار بود → فقط همان اجرا میشود.
2. اگر نبود → شرط دوم بررسی میشود، و به همین ترتیب.
3. اگر هیچکدام برقرار نبودند → به else میرسد.

مثال: بررسی مقدار متغیر با استفاده از نردبان if-else-if
Java program to demonstrate the// working of if-else-if ladder// ;*.import java.util } class Geeks public static void main(String args[]) } ;int i = 20 if (i == 10) ;System.out.println("i is 10") else if (i == 15) ;System.out.println("i is 15") else if (i == 20) ;System.out.println("i is 20") else ;System.out.println("i is not present") { {
خروجی:
i is 20
5. Java Switch Case
دستور switch یک ابزار برای انجام چند انتخابی (multiway decision) است.این ساختار زمانی مفید است که بخواهیم بر اساس مقدار مشخصی از یک متغیر، مسیر اجرای برنامه را به شاخههای مختلف تقسیم کنیم.
بهعبارتی، بهجای نوشتن چندین if-else-if، میتوانیم از switch استفاده کنیم تا کد سادهتر و خواناتر شود.
نحوه نوشتار (Syntax):
switch (expression) {
case value1:
// code to be executed if expression == value1
break;
case value2:
// code to be executed if expression == value2
break;
// more cases…
default:
// code to be executed if no cases match
{
نمودار جریان اجرای switch-case
در دیاگرام اجرای این ساختار:1. مقدار expression بررسی میشود.
2. با هر case مقایسه میشود.
3. اگر تطابق پیدا کند، آن بخش اجرا میشود و با استفاده از break از بلوک خارج میشود.
4. در صورت عدم تطابق با هیچکدام -> بلوک default اجرا میشود.

مثال: استفاده از switch برای بررسی مقدار متغیر
Java program to demonstrates the// working of switch statements// ;*.import java.io } class Geeks public static void main(String[] args) } ;int num = 20 } switch (num) :case 5 ;System.out.println("It is 5") ;break :case 10 ;System.out.println("It is 10") ;break :case 15 ;System.out.println("It is 15") ;break :case 20 ;System.out.println("It is 20") ;break :default ;System.out.println("Not present") { { {
خروجی:
It is 20
نکات کلیدی:
• مقدار expression میتواند از نوعهای byte, short, int, char, یا enum باشد. از نسخه JDK 7 به بعد، نوع String نیز پشتیبانی میشود.
• مقدارهای تکراری برای case مجاز نیستند.
• استفاده از default اختیاری است، اما برای پوشش موارد غیرقابل پیشبینی مفید است.
• کلمهی کلیدی break ضروری است تا از ادامهی اجرای سایر caseها جلوگیری کند.
• در صورتی که از break استفاده نکنیم، اجرای برنامه به case بعدی منتقل میشود (fall through).
۶. دستورات جهشی (Jump Statements) در جاوا
در زبان برنامهنویسی Java، سه دستور جهشی یا "Jump" وجود دارد که کنترل اجرای برنامه را به قسمت دیگری منتقل میکنند:• break
• continue
• return
هرکدام از این دستورات در موقعیتهای خاصی کاربرد دارند. بیایید آنها را جداگانه بررسی کنیم:
🔸 break – خروج از بلوک تکرار یا switch
دستور break معمولاً در جاوا برای موارد زیر استفاده میشود:
1. خروج از دستور switch-case (که قبلاً توضیح داده شد).
2. خروج فوری از یک حلقه (for, while, یا do-while).
3. به عنوان جایگزینی منظم برای دستور goto (که در جاوا وجود ندارد).
________________________________________
🔸 continue – رفتن به تکرار بعدی حلقه
گاهی اوقات نیاز است بخشی از بدنهی حلقه را رد کنیم و مستقیماً به تکرار بعدی برویم. در این مواقع از دستور continue استفاده میکنیم.
• continue باعث میشود باقیماندهی کد در حلقه اجرا نشود و کنترل مستقیماً به ابتدای حلقه بازگردد.
• مناسب برای رد کردن یک شرط خاص در یک حلقه تکراری.
جریان اجرای دستورات پرشی
نمودار زیر، نمودار جریان اجرای «دستورات پرشی» را در برنامهنویسی نشان میدهد.
مثال:
برنامه جاوای زیر نشان میدهد که چگونه دستور continue در صورت برقرار بودن یک شرط، اجرای دور جاری حلقه را نادیده گرفته و به دور بعدی میرود.
Java program to demonstrates the use of// continue in an if statement// ;*.import java.util } class Geeks public static void main(String args[]) } } for (int i = 0; i < 10; i++) If the number is even// skip and continue// if (i % 2 == 0) ;continue If number is odd, print it// ;System.out.print(i + " ") { { {
خروجی:
9 7 5 3 1
return – بازگشت از متد
دستور return برای بازگشت از یک متد استفاده میشود. بهمحض اجرای آن، مابقی کد متد اجرا نخواهد شد و برنامه به محل فراخوانی متد بازمیگردد.
• در متدهایی که مقدار بازمیگردانند، return مقدار خروجی را مشخص میکند.
• در متدهایی که void هستند، return فقط باعث توقف اجرای متد میشود.
مثال: استفاده از return برای توقف اجرای متد
Java program to demonstrate the use of return// ;*.import java.util } public class Geeks public static void main(String args[]) } ;boolean t = true ;System.out.println("Before the return.") if (t) return Compiler will bypass every statement// after return// ;System.out.println("This won't execute.") { {
خروجی:
.Before the return

نکات مهم برای استفاده از دستورات تصمیمگیری:
• هنگام بررسی چند مقدار دقیق، از switch استفاده کنید.
• از تو در تو شدن زیاد شرطها پرهیز کنید.
• در switch حتماً از default استفاده کنید تا موارد غیرمنتظره را پوشش دهد.
• در بررسی بازهها و شرایط پیچیده، از if-else بهره ببرید.
✅ جمعبندی
در زبان برنامهنویسی Java، ساختارهای تصمیمگیری نقش مهمی در کنترل جریان اجرای برنامه دارند. این ساختارها به برنامهنویس امکان میدهند که بر اساس شرایط مختلف، مسیر مناسب اجرای کد را انتخاب کند. مهمترین این ساختارها عبارتاند از:if و if-else: برای بررسی یک یا دو مسیر وابسته به یک شرط.
nested-if و if-else-if: برای بررسی چندین شرط پشت سر هم.
switch-case: برای بررسی دقیق مقادیر ثابت به صورت سازمانیافته.
jump statements (break, continue, return): برای کنترل سریع جریان برنامه درون حلقهها و متدها.
با استفادهی صحیح از این ساختارها، میتوان برنامههایی انعطافپذیر، قابل خواندن و کارآمد ساخت.
📝 تمرین
تمرین if-else: برنامهای بنویسید که عدد ورودی از کاربر بگیرد و مشخص کند عدد مثبت، منفی یا صفر است.تمرین if-else-if: با گرفتن نمره از کاربر، سطح آن را بر اساس جدول زیر مشخص کنید:
90 به بالا: عالی
70 تا 89: خوب
50 تا 69: متوسط
کمتر از 50: ضعیف
تمرین switch-case: برنامهای بنویسید که عددی بین 1 تا 7 بگیرد و روز معادل آن (شنبه تا جمعه) را چاپ کند.
تمرین continue و break: با استفاده از حلقه for، اعداد 1 تا 10 را چاپ کنید. اگر عددی زوج بود از آن صرفنظر کنید (با continue) و اگر به عدد 7 رسیدید، حلقه را متوقف کنید (با break).
تمرین return: تابعی بنویسید که یک عدد دریافت کند، اگر زوج بود true و اگر فرد بود false برگرداند.
ورود و ثبت نام برای ارسال نظر وارد شوید