بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
خروجی دلخواه از الگوریتم من استخراج نمی شود.
با سلام و عرض ادب خدمت استاد عزیز و با تشکر از زحمات شما یک سوال
در پروژه زیر:
package noor.mahdi.apps;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class My1appActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int i = 255;
for (int index = 1; index <= i; index++) {
if (i % index == 0) {
int j = 1;
Log.i("log", "number" + j + index);
j++;
}
}
}
}
چگونه باید عدد j را بدون اینکه دوباره 1 شود زیاد کرد؟
منظور اینه که میخام نتیجه به این صورت بشه که نمیشه:
number1 1
number2 3
number3 5
number4 15
number5 17
ممنون
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
uncocoder
12 سال پیش
+1
0
- وقتی دو عدد در کنار هم در یک String جمع میشن مثل j + index معنی درستی از خروجی نخواهند داشت.
2- مقدار j با استفاده از ++ اضافه شده اما هیچ اثری در خروجی نداره چرا که در حلقه for بعدی این مقدار مجدد تعریف و به 1 تبدیل میشه. توجه کنید که int j یک متغیر را تعریف می کنه در داخل بلاک مربوط به if معتبر هست و وجود داره. پس اگر بخواهید این متغیر در طول حلقه for مقادیرش اضافه بشه باید بالای حلقه for در در جاییکه i تعریف شده اضافه بشه.
لذا کد صحیح:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int i = 255;
int j = 1;
for (int index = 1; index <= i; index++) {
if (i % index == 0) {
Log.i("log", "number" + j + ": " + index);
j++;
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .