-
error در برنامه
این برنامه من چرا اعداد اول پیدا نمیکند؟
لطفا برنامه را بهینه نکنید آخه ما باید پیدا کردن عدد اول را در چهار ورژن بنویسیم و زمان اجرا را محاسبه کنبم
کد:
#include <iostream.h>
کد:
#include <conio.h>
int main()
{
int prim,k;
cout<<"Enter a number for fiding";
cin>>prim;
k=2;
again:if(prim%k==0)
{
cout<<"Not prime";
}
else if(prim==k++){
cout<<"prime";
}
else
goto again;
getch();
return 0;
}
-
اینو امتحان کنید
کد:
#include <iostream.h>
#include <conio.h>
int main()
{
int prim, k;
cout << "Enter a number for checking: ";
cin >> prim;
k = 2;
again:
if (prim % k == 0 && k != prim) // where the action is
{
cout << "Not prime";
}
else
if (prim == k++)
{
cout << "prime";
}
else
goto again;
getch();
}
در ضمن تا میشه از goto استفاده نکنید!
-
اين دستور goto رو اي کاش تو استانداردهاي جديد ++C حذف مي کردن . خيلي دستور مضخرفيه .
البته ببخشيد ها ، کلي عرض کردم . :20:
-
نقل قول:
خيلي دستور مضخرفيه
نه در این حد
برای خروج از حلقه های تو در تو گاهی بهترین را استفاده از goto هست
در هر حال در جای مناسب باید ازش استفده بشه
-
بالاخره که هر برنامه اي رو ميشه بدون استفاده از اون نوشت . حتي بدون استفاده از break و continue .
براي خروج از حلقه به نظرتون break بهتر نيست ؟
-
break فقط از يك حلقه خارج ميشه
اگه دو يا چند حلقه تو در تو باشه بهترين راه goto استفاده از هست.