menu

آشنایی با دستورات شرطی در اندروید

درباره دستورات شرطی همانند if و Switch بیشتر بدانید


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

دستور شرطی if:

با استفاده از دستور if قادر خواهیم بود تا یک شرط را بررسی نموده و در صورت برقرار بودن آن کدهای نوشته شده درون دستور if اجرا شوند. به مثال زیر توجه نمایید:

          
  public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int mynumber = 2;
        if (mynumber < 5){
            // اگر شرط درست باشد کدهای این قسمت اجرا خواهند شد
            Log.i("iZarebin", "condition is true");
        }
    }
  }
          

دستور if else:

این دستور همانند دستور if عمل می کند با این تفاوت که اگر شرط بررسی شده برقرار نبود آن گاه کد های مربوط به else اجرا می شوند. به مثال زیر توجه نمایید:

          
  public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int mynumber = 7;
        if (mynumber < 5){
            // اگر شرط درست باشد کدهای این قسمت اجرا خواهند شد
            Log.i("iZarebin", "condition is true");
        } else {
            // اگر شرط غلط باشد کد های این قسمت اجرا می شوند
            Log.i("iZarebin", "condition is false");
        }
    }
  }
          

در مثال بالا متغیر "mynumber" دارای مقدار "7" می باشد و مطابق با شرط نوشته شده کوچکتر از "5" نیست. در نتیجه کدهای قسمت else اجرا خواهند شد و برای ما عبارت "condition is false" در "logcat" چاپ می شود.

دستور if else if:

هرگاه بخواهیم چندین شرط را بررسی نماییم که برقرار هستند یا خیر از دستور "if else if" استفاده می کنیم. برای فهم بهتر این دستور به مثال زیر توجه نمایید:

          
  public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int mynumber = 3;
        if (mynumber == 1){
            // اگر مقدار متغیر برابر با 1 باشد
            Log.i("iZarebin", "number is = 1");
        } else if (mynumber == 2) {
            // اگر مقدار متغیر برابر با 2 باشد
            Log.i("iZarebin", "number is = 2");
        } else if (mynumber == 3) {
            // اگر مقدار متغیر برابر با 3 باشد
            Log.i("iZarebin", "number is = 3");
        } else {
            // اگر متغیر مقداری غیر از 1 و 2 و 3 داشته باشد
            Log.i("iZarebin", "unknown number");
        }
    }
  }
          

دستور switch:

در صورتی که بخواهیم برای یک متغیر خاص شرط ها و حالات مختلفی را بررسی نماییم می توانیم از دستور switch استفاده کنیم. به جای استفاده از "if else if" بهتر است از دستور "switch" استفاده کنیم. به مثال زیر توجه نمایید:

          
  public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int mynumber = 3;
        switch (mynumber) {
            case 1:
            // اگر مقدار متغیر برابر با 1 باشد
            Log.i("iZarebin", "number is = 1");
            break;
            case 2:
            // اگر مقدار متغیر برابر با 2 باشد
            Log.i("iZarebin", "number is = 2");
            break;
            case 3:
            // اگر مقدار متغیر برابر با 3 باشد
            Log.i("iZarebin", "number is = 3");
            break;
            default:
            // اگر متغیر مقداری غیر از 1 و 2 و 3 داشته باشد
            Log.i("iZarebin", "unknown number");
        }
    }
  }
          

نکات مهم دستور switch:

  • در صورت قرار ندادن "break" بعد از هر "case" باعث می شود تا برنامه تا آخر اجرا شده و سپس از بلاک "switch" خارج شود
  • با قرار دادن "break" بعد از دستورات هر "case" باعث می شویم تا از بلاک "switch" خارج شده و به دستور بعدی برود
  • دستورات هر "case" تا زمانی که به "break" برسند اجرا می شوند. پس از رسیدن به آن از بلاک خارج می شود.
  • بخش "default" دستور "switch" برای زمانی رخ می دهد که تمامی "case" ها بررسی شده اند و هیچ کدام از شرط ها برقرار نبوده اند، آنگاه کدهای این بخش اجرا می شود. این قسمت همانند آخرین else در دستور "if else if" می باشد.
  • دستور "switch" تنها مقادیر داده ای از نوع byte یا int یا char یا short را می پذیرد. اگر نوع داده شما غیر از این 4 نوع باشد نمی توانید از دستور switch استفاده نمایید.