خطای Syntax error on token ., ; expected
سلام دوستان
موقع نوشتن کد یه خطا میده با این مضمون Syntax error on token ".", ; expected
توی خطی که میخوام Log.i() بنویسم
چی کار باید کرد؟
int add1 = 20;
for (int index = 1; index <= add1; index++) {
if (add1 % index == 0) {
for (int index2 = 1; index2 < index; index2 ++){
if (index % index2 == 0){
continue
Log.i("LOG", "Number Found is :" + index2);
}
}
}
}
سلام دوست عزیز
مشکل اول کد شما بعد از continue باید ; بگذارید
مشکل دومی که بعد از گذاشتن ; به وجود میاد اینه که چون شما log رو بعد دستور continue گذاشتید از شما خطا میگیره و میگه این دستور مرده است و باید جاشو تغییر بدید کد درست به صورت زیر است اما من برنامه رو تست نکردم که ببینم اصلا کارش چی هست و با این تغییر خروجی درست میده یا نه این چیزی که گفتم فقط ایرادای Syntax رو برطرف میکنه
کد درست
int add1 = 20;
for (int index = 1; index <= add1; index++) {
if (add1 % index == 0) {
for (int index2 = 1; index2 < index; index2 ++){
if (index % index2 == 0){
continue;
}
Log.i("LOG", "Number Found is :" + index2);
}
}
}
سپاس فراوان از راهنماییتون
من در واقع با این کد میخوام مقسوم علیه های اول یک عدد رو مشخص کنم ولی توی خروجی یه جواب دیگه بدست میارم.!
با راهنمایی شما این کد رو اصلاح کردم ولی بازم خروجی اشتباه در میاد
int add1 = 20;
for (int index = 1; index <= add1; index++) {
if (add1 % index == 0) {
for (int index2 = 1; index2 < index; index2++) {
if (index == 1) {
Log.i("LOG", "FIB Code : 1");
} else if (index % index2 == 0) {
continue;
}
Log.i("LOG", "FIB Code :" + index2);
}
}
}
همونطور که آقای حجت گفتند بعد از هر دستور باید ';' بذارید
اما برای محاسبه مقسوم علیه های اول یک عدد متد های زیر رو براتون نوشتم و توضیحاتم داره
private ArrayList<Integer> getPrimeDivisor(int number){//خروجی این متد یک آرایهایه که حاوی مقسوم علیه های اول عدد ورودی به متد هست
ArrayList<Integer> list = new ArrayList<Integer>();//این یک آرایه دینامیک هست.هربار که مقسوم علیه اولی پیدا کنیم توی این لیست ذخیره اش میکنیم
for (int i = 2; i <= number /2; i++){
if((number % i) == 0){//عدد i مقسوم علیه عدد ورودی به متد است ولی هنوز نمیدونیم اوله یا نه
if (checkIsPrime(i)){//با استفاده از متدی که پایین نوشتیم اول بودن این مقسوم علیه رو چک میکنیم
list.add(i);//اگه حاصل اجرای متد checkIsPrime برابر true بود به لیست بالا اضافش میکنیم
}
}
}
return list;//لیست رو برمیگردونیم
}
private boolean checkIsPrime(int number)//این متد رو برای چک کردن اول بودن اعداد استفاده میکنیم
{
for (int i = 2;i<=number/2;i++)//تا numberتقسیم بر2 رو بیشتر جک نمیکنیم چون هیج عددی مصسوم علیه ای بزرگتر از نصف خودش نداره،البته به غیر از خودش
{
if ((number % i) == 0)
{
return false;//اگه مقسوم علیه ای داشت پس بعنی اول نیست در نتیجه مقدار false برمیگردونیم
}
}
return true;//اگه مقدار fasle برنگشت true برمیگردونیم که یعنی این عدد اول هست
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .