احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
سلام دوستان در برنامه ای که پایان ندارد قرار است عددی بخوانیم اگر شرایط برایش صدق کرد در خروجی بنویسد مشکل برنامه اینجاست که مشخص نیست کی به پایان میرسد بنابراین چون این برنامه باید تکرار شود نمی دانم در قسمت شرط حلقه ی while چه چیزی بنویسم تا برنامه در داخل این حلقه تکرار شود
فرض کنید قرار است برنامه یک متن را بگیرد و جاهای خالی این متن را حذف و بقیه متن را مکررا بنویسد مثلا اگر بخواهیم متن this is a test را در برنامه وارد کنیم خروجی به شکل
tthhiissiissaatteesstt باشد
x = getche();
while(?)
{
if ( x !='\t' || x!='\n' || x !=' ')
printf ("%c",x);
else
x=getche();
x=getche();
}
حالا به نظر شما باید به جای ؟ چه چیزی نوشت در ضمن اگر حلقه ای جز while را برای اینکار سراغ دارید بگید و مشکل دیگر اینکه ممکن است داخل متن عدد نیز بیاید در اینصورت باید چه کرد با توجه به
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
خب اگر نمي خواي از حلقه خارج شوي عدد 1 را به جاي ? قرار بده.
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
میتونی بگی هر موقع طرف esc زد از حلقه بیاد بیرون تو c برای اینکار باید از ()kbhit استفاده کنی.
موفق باشی
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
نقل قول:
نوشته شده توسط
lidaline
سلام دوستان در برنامه ای که پایان ندارد قرار است عددی بخوانیم اگر شرایط برایش صدق کرد در خروجی بنویسد مشکل برنامه اینجاست که مشخص نیست کی به پایان میرسد بنابراین چون این برنامه باید تکرار شود نمی دانم در قسمت شرط حلقه ی while چه چیزی بنویسم تا برنامه در داخل این حلقه تکرار شود
فرض کنید قرار است برنامه یک متن را بگیرد و جاهای خالی این متن را حذف و بقیه متن را مکررا بنویسد مثلا اگر بخواهیم متن this is a test را در برنامه وارد کنیم خروجی به شکل
tthhiissiissaatteesstt باشد
x = getche();
while(?)
{
if ( x !='\t' || x!='\n' || x !=' ')
printf ("%c",x);
else
x=getche();
x=getche();
}
حالا به نظر شما باید به جای ؟ چه چیزی نوشت در ضمن اگر حلقه ای جز while را برای اینکار سراغ دارید بگید و مشکل دیگر اینکه ممکن است داخل متن عدد نیز بیاید در اینصورت باید چه کرد با توجه به
عدد مشکلی ایجاد نمیکنه البته اگر زیاد بزرگ نباشه چون در واقع خود char هم یه نوع عددی هست ولی به مقدار یک بایت از حافظه را اشغال میکنه. در مورد حلقهی بالا به همون صورت که دوستمون گفتن بهتره از مقدار 1 استفاده کنید این یعنی اینکه شرط حلقه همیشه به صورت درست محاسبه میشه و یه حلقهی بینهایت تشکیل میشه که البته توصیه به استفاده از این گونه حلقهها نمیشه و برای خارج شدن از این حلقه باید حتمن تو بدنه حلقه یه شرط برای پایان به کارش در نظر بگیرید, توی قسمت else هم دوبار برای متغیر مقدار گرفتین که البته به هدف خودتون بستگی داره, در مورد حلقههای بینهایت دیگه هم میشه به (; ; )for و همین while با شرط همیشگی true اشاره کرد موفق باشید.
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
سلام
واضح نیست ولی اگه میخوای حلقه همیشه اجرا بشه و بی نهایت باشه همونطور که دوستان گفتن باید از 1 برای شرط While استفاده کنی و همچنین در for هم بازم گفتن که به صورت ( ; ; ) باید باشه تا حلق بی نهایت بشه .
در مورد عدد هم بگم که نه مشکلی پیش نمیاد .
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
همونطور که دوستان گفتن میتونی از while(1) استفاده کنی.
یعنی تا زمانیکه 1 با صفر برابر نیست تکرار کنه و بنابراین حلقه بی نهایت میشه.
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
سلام
من این حلقه را ایجاد کردم نمیدونم چرا andش درست کار نمی کنه یعنی وقتی یکی از شرط ها true شد میاد بیرون:متعجب::متعجب::متعجب:
while (!(x == e.X) && !(y == e.Y))
ممنون.
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
نقل قول:
نوشته شده توسط
فانوس1
سلام
من این حلقه را ایجاد کردم نمیدونم چرا andش درست کار نمی کنه یعنی وقتی یکی از شرط ها true شد میاد بیرون:متعجب::متعجب::متعجب:
while (!(x == e.X) && !(y == e.Y))
ممنون.
تست کردم، درست کار می کنه!
نقل قول: احتیاج به یک حلقه ی بدون شرط برای تکرار بدنه تا بی نهایت
نقل قول:
نوشته شده توسط
chikar
تست کردم، درست کار می کنه!
بله ممنون از شما.باید از or استفاده میکردم نه and.