درس بیست و پنجم : عملگر شرطی ?: و عبارت تور در توی if..else

C# حاوی عماگر شرطی :؟ است که قرابت نزدیکی با عبارت if..else دارد . عملگر شرطی در C# تنها عملگر temary است ، به این معنی که سه عملوند دریافت می کند . عملوند ها به همراه عملگر شرطی تشکیل عبارت شرطی را می دهند . عملوند اول نشان دهنده شرط میباشد ، عملوند دوم مقداری است که در صورت true بودن شرط انتخاب می شوند و عملوند سوم مقداری است که در صورت برقرار نبودن  شرط یا false بودن آن انتخاب می شود . برای مثال به عبارت زیر توجه کنید :

Console.writeline( grade>=60 ? “Passed” : “Failed”);

حاوی یک عبارت شرطی است که در صورت برقرار بودن شرط grade >=60  رشته “passed” ارزیابی می شود ، اما اگر شرط برقرار نباشد ، رشته “Failed” بکار گرفته خواهد شد ، از این رو عملکرد این عبارت شرطی دقیقا همانند عبارت if..else قبلی است . عملگر شرطی از تقدم پذیری پایین تری برخوردار است و از این رو معمولا کل عبارت شرطی را در درون پرانتز ها قرار می دهند .

عبارت تو در توی if..else
عبارت تو در تو با متداخل if..else برای تست چندین شرط با قرار دادن عبارت های if..else در دورن عبارت های if..else دیگر است . برای مثال ، عبارت شبه کد زیر ، حرف “A” را برای نمره های بزرگتر یا برابر ۹۰ ، “B” را برای نمره های در محدوده ی ۸۰-۸۹ ، C را برای نمره های در محدوده ی ۷۰-۷۹ ، D را برای نمره های در محدوده ی ۶۰-۶۹ و F را سایر نمرات به چاپ می رساند .

If student’s grade is greater the or qual to 90
	Print “A”
Else
	If student’s grade is greater than or equal to 80
		Print “B”
	Else
		If student’s grade is greater than or equal to 70
			Print “C”
		Else
			If student’s grade is greater than or equal to 60
				Print “D”
		Else
				Print “F”

عبارت شبه کد بالا را می توان در C# به فرم زیر نوشت :

if (grade>=90)
	console.writeline("A");
else
	if(grade>=80)
		console.writeline("B");
	else
		if(grade>=70)
			console.writeline("C");
		else
			if(grade>=60)
				console.writeline("D");
			else
				console.writeline("F")

اگر مقدار grade بزرگتر یا مساوی ۹۰ باشد ، اولین شرط از پنج شرط برقرار شده و فقط عبارت قرار گرفته در بدنه اولین شرط به اجرا در می آید . پس از اجرای این عبارت از بخش else خارجی عبارت if..else پرش خواهد شد . اکثر برنامه نویسان C# ترجیح می دهند که عبارت if..else را با استفاده از کلمه کلیدی else if  وبه صورت زیر در برنامه های خود بنویسند :

if (grade>=90)
	console.writeline("A");
else if(grade>=80)
		console.writeline("B");
	else if(grade>=70)
			console.writeline("C");
		else if(grade>=60)
				console.writeline("D");
		else
			console.writeline("F")

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

درس بیست و پنجم : عملگر شرطی ?: و عبارت تور در توی if..else
5 (100%) 1 رای

(434 نوشته)

C# Programmer , Web Design And Developer , MVC , ASP.NET

فکر شما چیست؟

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

حاصل جمع اعداد را وارد کنید : *