اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

با سلام آیا در حلقه for میشه از شرط == استفاده کرد یا نه باید بصورت <= یا >= باشد؟

0 امتیاز
1,225 نمایش

منظورم در شرط حلقه for هست چون من که نتیجه نگرفتن!!!

اینم از یک مثال ساده همینطور که میبینید در کدهای حلقه نمیشه از شرطی استفاده کرد که درش از == استفاده شده باشد!!! من فکر کنم نمیشود و باید از <= یا >= استفاده شود شما هم چک کنید لطفا؟!!

#include <iostream.h>
#include <conio.h>
int main()
{
  int table[10][10], i, j ;
  clrscr();
  for(i = 0; i == 10; i++)
      for(j = 0; j == 10; j++)
        table[i][j] = (i + 1)*(j + 1) ;
  for(i = 0; i == 10; i++) {
     for(j = 0; j == 10; j++)
        cout << table[i][j] << "\t" ;
     cout << endl;
  }
  getch();
  return 0;
}
پرسیده شده سه شنبه ۲۸ خرداد ۱۳۹۲ در C++ توسط daniyaltjm  
ویرایش شده دوشنبه ۱۷ تیر ۱۳۹۲ توسط admin

بله مشخصه که می‌شه. کدتون رو بذارین تا مشخص بشه کجاش مشکل داره

#include <iostream.h>
#include <conio.h>
int main()
{
  int table[10][10], i, j ;
  clrscr();
  for(i = 0; i < 10; i++)
     for(j = 0; j < 10; j++)
       table[i][j] = (i + 1)*(j + 1) ;
  for(i = 0; i < 10; i++) {
    for(j = 0; j < 10; j++)
       cout << table[i][j] << "\t" ;
    cout << endl;
  }
  getch();
  return 0;
}

در کد شما i == 10 یعنی تا وقتی که i مساوی ۱۰ هست که یعنی هیچ وقت! چون از ابتدا i=1 هست. بنابراین از ابتدای حلقه شرط ‍false می‌شه و میاد بیرون از حلقه و هیچ کاری هم انجام نمی‌شه
ولی این کد دوم که توسط ناشناس گذاشته شده درسته

ببخشید i=0 هست و از 0 شروع میشه وشرط خاتمه هم i==10 هست یعنی باید تا 10 بشماره!! ولی این طور نیست ولی در کد دوم i<10 درسته!! یعنی i تا 9 بشماره ؟ من که گیج شدم!!

لطفا یه مثال ساده بزنید که درش از شرط== در حلقه بکار رفته باشه ببینیم اصلا کاربردی داره چون وقتی که از ابتدای حلقه خارج میشه به چه دردی میخوره؟

وقتی ما در شرط حلقه به صورت for(p; q; r) می‌نویسیم که p و qr سه عبارت هستند، این یعنی از p تا وقتی که q برقرار هست،

در مثال شما وقتی می‌نویسیم for(int i=0; i==10; i++) یعنی از i=0 تا وقتی که i==10 برقرار هست (نه تا وقتی که i==10 برقرار بشه). بنابراین یعنی هیچ وقت!

1 پاسخ

0 امتیاز

در شرط حلقه هر عبارتی که نتیجه‌ش از نوع bool باشه می‌تونه قرار بگیره. برای تولید عبارت‌های پیچیده‌تر از || (یای منطقی) && (و ی منطقی) و ! (نقیض منطقی) استفاده می‌شه.

معمولاً حلقه‌ی for برای شمارش‌های مشخص به کار برده می‌شه. مثلاً تعداد اعضای یک آرایه، تعداد حروف یک رشته، ...
در بقیه موارد معمولاً از حلقه‌ی while استفاده می‌شه. استفاده از تساوی (==) برای شرط حلقه هم معمولاً در ‍while هست نه در for ولی به هر حال می‌شه مثال زد:

فرض کنیم می‌خوایم از شروع یه فهرست اعداد زوج‌اش رو چاپ کنیم تا برسیم به اولین عدد فرد.

int i = 0;
int array[100] = {...};
int *ptr = array;
for(int i=*ptr%2; i==0; ptr++)
  cout<<*ptr<<' '; 
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده چهارشنبه ۲ مرداد ۱۳۹۲ توسط prodo