آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خطای نوع سوم ( برای حلقه for )

ChookD1  9 سال پیش  9 سال پیش
+2 0

سلام .

چرا این کد من باعث خطای نوع سوم میشه ؟

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

for (long i=0; i<10; i+=2-1.02) {
Log.i("Test", "I is: " + i);

}
}

 

آیا به این دلیل هست که : اینتیجر (int) یا لونگ ( Long ) از مقدار عددی که ممیز داره پشتیبانی نمیکنه ؟

یا اینکه مشکل دیگه ای وجود داره ؟

 

0 0
چرا به جای 1.02-2 از 0.98 استفاده نمیکنی ؟ بعدشم فکر کنم نوع نوشتن فرمت long باید به صورت عدد علمی باشه به جای long از float استفاده کن ببین باز خطا میده یا نه (9 سال پیش)
+2 0
درسته من Long رو اشتباه استفاده کردم چون بعدش L رو نزاشتم اما قبل از این با int هم این کارو انجام دادم که باز هم خطای مشابهی رو نشون میداد و مد نظر من از این سوال همون int هست . میخواستم دلیل منطقیش رو بدونم. راجع به اینکه چرا از عدد 0.98 به جای 2-0.02 استفاده نکردم این هست که داشتم با آموزش استاد پیش میرفتم ومیخواستم بعد از تموم شدن مبحث کمی با اعدا کلنجار برم که مثلا میشه اونجا فقط یه عدد نوشت یا نه . میشه یه جمله ی دیگه با جمع و تفریق و غیره هم نوشت . ممنون از پاسخی که دادید . (9 سال پیش)
+2 0
با وارد کردن مقدار float همه چیز به درستی کار میکنه و تمام اعداد با ممیــّـز نشون داده میشن (9 سال پیش)
+3 0
دوست عزیز شما یک متغیر از نوع int را با یک مقدار زیر 1 جمع بکنی هیچ مقداری به مقدار عددی اون متغیر اضافه نخواهد شد پس هیچ گاه شرط حلقه نقض نشده (مقدار i به نخواهد رسید) و برنامه شما در یک حلقه بی انتها خواهد افتاد (9 سال پیش)
+1 0
البته این اضافه کردن متغیر با عددی اعشاری وقمی درست است که نتیجه عملیات به مقداری int تبدیل شود (با cast کردن به int) (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .