تودر تو (Nested if)
گاهی یک شرط داخل شرط دیگر لازم داریم. به این می گوییم «تودر تو». یعنی اول یک شرط چک می شود. سپس فقط اگر درست بود، شرط بعدی بررسی می شود. مثل نگهبانِ اول، بعد نگهبانِ دوم.
شرط تودر تو چیست؟
در شرط تودر تو، if داخل if قرار می گیرد. بنابراین شرط دوم فقط وقتی اجرا می شود که شرط اول درست باشد.
if (condition1) {
  // code to run if condition1 is true
  if (condition2) {
    // code to run if both condition1 and condition2 are true
  }
}
نمونه ساده از تودر تو
اول x را می سنجیم. سپس، اگر درست بود، y را می سنجیم.
int x = 15;
int y = 25;
if (x > 10) {
  cout << "x is greater than 10\n";
  if (y > 20) {
    cout << "y is also greater than 20\n";
  }
}
نمونه نزدیک به زندگی
اول سن را چک می کنیم. سپس تابعیت را می سنجیم. نتیجه مرحله ای است.
int age = 20;
bool isCitizen = true;
if (age >= 18) {
  cout << "Old enough to vote.\n";
  if (isCitizen) {
    cout << "And you are a citizen, so you can vote!\n";
  } else {
    cout << "But you must be a citizen to vote.\n";
  }
} else {
  cout << "Not old enough to vote.\n";
}
نکته: می توانید چند if را تودر تو کنید؛ اما زیاد عمقی نشود. خوانایی سخت می شود.
هشدار: برای تصمیم های پیچیده، ترکیب else if و else معمولاً شفاف تر است.
تمرین مرحله ای
- یک متغیر (Variable) کلاس بساز: grade و absences.
- اگر grade >= 90، پیام «عالی» بده.
- سپس اگر absences > 3، پیام «ولی غیبت زیاد» هم چاپ کن.
برای مقایسه، صفحات شرط ها If...Else و اگر کوتاه را هم ببین. این ها کنار هم بهتر جا می افتند.
جمع بندی سریع
- تودر تو یعنی if داخل if.
- شرط دوم وابسته به شرط اول است.
- برای مراحل وابسته عالی است.
- زیاده روی، خوانایی را کم می کند.
- پیچیدگی زیاد را با else if بساز.
