3 سال پیش / خواندن دقیقه

دستور if و if…else در برنامه نویسی C با مثال |آموزش سی

دستور if و if…else در برنامه نویسی C با مثال  |آموزش سی

در این آموزش به کمک مثال های مختلف با دستورهای if، if…else، if…else نردبانی و if…else تودرتو در برنامه نویسی C آشنا خواهید شد.

دستور if در C

سلختار دستور if در برنامه نویسی C به شکل زیر است:

if (عبارت شرطی)

{

// اجرا می شوند if اگر عبارت شرطی درست باشد، دستورات

}

دستور if چگونه کار می کند؟

در دستور if ابتدا عبارت شرطی داخل پرانتز بررسی می شود:

 

  • اگر عبارت شرطی درست (true) باشد، دستورات داخل بدنه if اجرا می شوند.
  • اگر عبارت شرطی نادرست (false) باشد، دستورات داخل بدنه if اجرا نمی شوند و کنترل برنامه به بعد از دستور if (بعد از }) منتقل خواهد شد.

دستور if و if…else در برنامه نویسی C با مثال  |آموزش سی

برای کسب اطلاعات بیشتر درباره عبارت های شرطی و اینکه چه زمانی درست (مقدار غیر صفر) و یا نادرست (مقدار صفر) ارزیابی می شوند، به آموزش عملگرها در برنامه نویسی C قسمت عملگرهای رابطه ای و منطقی مراجعه کنید.

مثال ۱: دستور if

// برنامه نمایش عدد منفی
#include <stdio.h>
int main() {
int number;
printf(“Enter an integer: “);
scanf(“%d”, &number);
// اگر عدد کوچکتر از ۰ باشد، عبارت شرطی درست و برقرار است
if (number < 0) {
printf(“You entered %d.\n”, number);
}
printf(“The if statement is easy.”);
return 0;
}

خروجی

Enter an integer: -2

You entered -2.

The if statement is easy.

وقتی کاربر عدد -۲ را وارد کند، شرط number<0  درست ارزیابی شده و رشته “You entered -2” درصفحه خروجی نمایش داده می شود.

خروجی ۲

Enter an integer: 5

The if statement is easy.

هنگامی که کاربر عدد ۵ را وارد کند، عبارت شرطی number<0 نادرست ارزیابی شده و دستور داخل بدنه if اجرا نمی شود. در ادامه، برنامه به بعد از دستور if می رود.

دستور if…else در C

دستور if ممکن است یک بلوک اختیاری با نام else داشته باشد. ساختار دستور if…else به صورت زیر است:

if (عبارت شرطی) {

// اجرا می شوند if اگر عبارت شرطی درست باشد، دستورات

}

else {

// اجرا می شوند else اگر عبارت شرطی نادرست باشد، دستورات

}

دستور if…else چگونه کار می کند؟

اگر عبارت شرطی درست باشد:

  • دستورات داخل بدنه if اجرا می شوند.
  • از دستورات داخل بدنه else رد شده و اجرا نمی شوند.

اگر عبارت شرطی نادرست باشد:

  • دستورات داخل بدنه else اجرا می شوند.
  • دستورات داخل بدنه if اجرا نمی شوند.

دستور if و if…else در برنامه نویسی C با مثال  |آموزش سیمثال ۲: دستور if…else

// عدد زوج است یا فرد؟
#include <stdio.h>
int main() {
int number;
printf(“Enter an integer: “);
scanf(“%d”, &number);
// اگر باقیمانده تقسیم عدد به ۲ صفر باشد، شرط درست است.
if (number%2 == 0) {
printf(“%d is an even integer.”,number);
}
else {
printf(“%d is an odd integer.”,number);
}
return 0;
}

خروجی

Enter an integer: 7

۷ is an odd integer.

وقتی کاربر عدد ۷ را وارد کند، عبارت شرطی

number%2==0

نادرست ارزیابی می شود و مقدار صفر را برمی گرداند. در نتیجه دستور داخل بدنه else اجرا شده است.

if…else نردبانی در C

در دستور if…else براساس درست یا نادرست بودن عبارت شرطی، دو کد مختلف اجرا می شود. گاهی انتخاب بین بیش از ۲ گزینه است.

if…else نردبانی (Ladder) این امکان را فراهم می کند که بین چندین عبارت شرطی بررسی شود و دستورات متفاوتی را اجرا کند.

ساختار if…else نردبانی:

if (عبارت شرطی ۱) {
// دستور(ها)
}
else if(عبارت شرطی ۲) {
// دستور(ها)
}
else if (عبارت شرطی ۳) {
// دستور(ها)
}
.
.
else {
// دستور(ها)
}

مثال ۳: if…else نردبانی در C

//
// = > < برنامه ای برای ارتباط دو عدد صحیح با استفاده از یکی از نمادهای
#include <stdio.h>
int main() {
int number1, number2;
printf(“Enter two integers: “);
scanf(“%d %d”, &number1, &number2);
// بررسی می کند آیا دو عدد مساوی است
if(number1 == number2) {
printf(“Result: %d = %d”,number1,number2);
}
// است number2 بزرگتر از number1 بررسی می کند آیا
else if (number1 > number2) {
printf(“Result: %d > %d”, number1, number2);
}
//اگر دو شرط قبلی نادرست باشند
else {
printf(“Result: %d < %d”,number1, number2);
}
return 0;
}

خروجی

Enter two integers: 12

۲۳

Result: 12 < 23

if…else تودرتو در C

می توانید یک دستور if…else را در داخل بدنه دستور if…else دیگری بنویسید.

مثال ۴: if…else تودرتو

برنامه زیر مشابه مثال ۳ است و با استفاده از نمادهای (<>=) ارتباط بین دو عدد صحیح رانشان می دهد ولی در اینجا برای حل مسئله از دستورات if…else تودرتو استفاده می شود.

#include <stdio.h>
int main() {
int number1, number2;
printf(“Enter two integers: “);
scanf(“%d %d”, &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf(“Result: %d = %d”,number1,number2);
}
else {
printf(“Result: %d > %d”, number1, number2);
}
}
else {
printf(“Result: %d < %d”,number1, number2);
}
return 0;
}

اگر بدنه دستور if یا else فقط یک دستور داشته باشد، نیازی به استفاده از براکت نیست {}.

به عنوان مثال، این کد

if (a > b) {
printf(“Hello”);
}
printf(“Hi”);
با کد زیر یکی است،
if (a > b)
printf(“Hello”);
printf(“Hi”);


شاید از نوشته‌های زیر خوشتان بیاید
نظر خود را درباره این پست بنویسید ...

منوی سریع