PDA

View Full Version : مشکل در خروجی گرفتن از یک حلقه



mirage0411
جمعه 05 خرداد 1396, 19:19 عصر
سلام. یه کدی دارم تقریبا شبیه این هست :

int n=0;
main()
{
while (n<3)
salam()
}

void salam()
{
if t=1
cout<<tttt
else if t=2
coout<<sss
n++}



تو این کد برنامه یه سری جستجوهایی انجام میده که ملاک t=2 (عبارت درست ) هست .و وقتی مثلا 3 بار پیدا کرد برنامه متوقف میشه .
اما تو خروجی کد بنده هر جستجو درست یا غلط 3 بار اجرا میشه و وقتی عبارت درست پیدا شد چون 3 بار چاپ میشه برنامه در حقیقت یک یافته رو سه بار چاپ و متوقف میشه .
خروجی شبیه این هست .


ttt
ttt
ttt
sss
sss
sss


مشکل کد از کجا می تونه باشه .

Ananas
سه شنبه 09 خرداد 1396, 15:35 عصر
سلام.
بعد از if نوشتین t = 1 که فکر میکنم منظورتون t == 1 بوده و بعد از else هم همینطور t = 2 باید بشه t ==2

علی بهمنی جلالی
پنج شنبه 11 خرداد 1396, 00:20 صبح
سلام
من گمان کنم شما if و else if را اشتباه نوشته‌اید.

if t=1 ---> if (t == 1)
else if t=2 ---> else if (t == 2)

نکته: عملگر = با == متفاوته. عملگر = به معنای جایگزینی یا انتسابه اما عملگر == به معنای مساوی یا برابره.

علی بهمنی جلالی
پنج شنبه 11 خرداد 1396, 00:33 صبح
شاید کد زیر بتونه کمکتون بکنه:

#include <iostream>
using namespace std;


void salam();


int n = 0;
int t = 0;


main()
{
while (n < 3)
{
salam();
++t;
}
}

void salam()
{
if (t == 1)
cout << "t is equal to 1" << endl;
else if (t == 2)
cout << "t is equal to 2" << endl;


n++;
}