|
با استفاده از حلقه Loops می توان یک دستور یا مجموعه ای از دستورات را به تعداد دفعات مشخص یا تا زمان برقرار شدن یک شرط تکرار کرد . تصمیم گیری در مورد اینکه کدام نوع حلقه را بکار برید به این بستگی دارد که ایا از قبل میدانید که چه تعداد دفعات ای لازم است حلقه تکرار شود و یا عوامل خارجی نیز بر روی تعداد دفعات تکرار ان تائثیر دارند . برای مثال وقتی از یک شی ء DataReader برای خواندن رکورد ها از یک بانک اطلاعاتی استفاده میکنید این شیء متدی بنام Read دارد که در صورت موجود نبودن رکورد مقدار false را باز میگرداند . این مورد یکی از مواردی است که تعداد دفعاتی که لازم است حلقه تکرار شود را از قبل نم دانید . حلقه های While و do با استفاده از حلقه While یا Do میتوانید یک دستور یا مجموعه ای از دستورات را تا زمان برقرار شدن یک شرط تکرار کرد . برای مثال در ابتدا برای خواندن داده ها از بانک اطلاعاتی حلقه While را مورد استفاده قرار می دهیم : SqlConnection Con = new SqlConnection(); Con.ConnectionString = new ClsConfiGuration().GetConectionString(); SqlCommand Icomand = new SqlCommand(Comand, Con); Con.Open(); SqlDataReader Ireder = Icomand.ExecuteReader(); while (Ireder.Read()) { ComboMe.Items.Add(Ireder[NameTahsilatFild2].ToString()); } Ireder.Close(); Con.Close();
دستور Sql را نادیده بگیرید . زیرا در این مثال اهمیتی ندارد . انچه اهمیت دارد این است که تا زمانیکه دستور Sql اجرا شود تعدادی رکورد بازگردانده می شود . این دستور ساده است . تا زمانیکه شرط حلقه While برقرار True باشد مجموعه دستورات داخل ان تکرار می شوند.متد Read تا زمانیکه رکوردی موجود باشد مقدارTrue را باز میگرداند و اگر رکوردی موجود نباشد مقدار False را باز میگرداند . بنابر این تا زمانیکه رکوردی موجود باشد حلقه تکرار می شود . وقتی اجرای برنامه به حلقه While می رسد شرط حلقه را ارزیابی و تست میکند. اگر شرط True باشد مجموعه دستوراتی که بین While و End While هستند اجرا میشوند و وقتی اجرای برنامه به end while برسد حلقه مجدادا اغاز شده و یکبار دیگر شرطش ارزیابی و تست میشود این روند تا زمانیکه شرط حلقه False شود ادامه می یابد بدین ترتیب اجرای حلقه خاتمه یافته و اجرای برنامه از اولین دستور یعد از حلقه ادامه می یابد . اگر در همان ابتدا شرط حلقه False باشد اجرای حلقه خاتمه یافته و دستورات داخل ان حتی یک بار هم اجرا نخواهد شد . ه گاه نیاز است تا به اجرای حلقه را خاتمه دهید می توانید از دستور End While استفاده کنید برای مثال SqlDataReader rdl; while (rdl.Read()) { if (Operators.ConditionalCompareObjectLess(rdl["IdCount"], 0, false)) { break; } }
حال به سراغ حلقه Do می رویم . در شکل زیر شرط حلقه در ابتدای حلقه و قبل از اجرای دستورات حلقه ارزیابی و تست میشود . برای مثال SqlDataReader idr = new SqlDataReader (); do { //code } while (idr.Read());
تعداد بازدید : 78 |
نوشتده شده توسط admin در تاریخ 1388/05/15 در ساعت 14:26
|