...
ولی مگه متغیر های من public نیستن که بقیه جا ها بشه ازشون استفاده کرد؟
دو متغیر separator و counter متغیرهای متد main هستن و متغیرهای یک متد خاص رو فقط میتونین داخل اون متد خاص استفاده کنین. برای رفع مشکل دوتا راه دارین. اولیش اینه که این دو متغیر رو داخل متد AmirFunc تعریف کنین یا اینکه اونها رو داخل کلاس اصلی و خارج از هرگونه متد دیگه تعریف کنین. روش اول برای مواقعی هست که اون متغیر رو فقط داخل اون متد خاص نیاز دارین و روش دوم مناسب زمانی هست که اون متغیر خاص رو ممکنه داخل چندین متد مختلف یا جاهای دیگه (بیشتر از یک جا) استفاده کنین.
نکتهی دیگهای هم که توی برنامهتون هست و باعث بروز مشکل میشه اون خطی هست که سعی کردین متغیر separator رو در عدد 20 ضرب کنین. این کار توی جاوا ممکن نیست و جاوا هیچوقت یک رشته رو در یک عدد ضرب نمیکنه. (احتمالا پایتون کار کردین
) سادهترین راه برای انجام این کار استفاده از سازندهی کلاس String هست، به این صورت:
new String(new char[number]).replace("\0", "-")
با رعایت این موارد خطاها از بین میره اما در نهایت من منطق برنامهتون رو درک نکردم و دقیقا نمیدونم میخواین چیکار کنین، برداشت من اینه که قصد دارین اعداد بین 0 تا 10000 رو چاپ کنین. صرف نظر از این که برای این کار روش بهتری هم هست اما شما یه حلقهی بی نهایت نوشتین، چون در این حالت counter برابر با 0 هست پس شرط حلقهتون صحیحه و با توجه به اینکه مقدار counter در طول حلقه تغییری نمیکنه، برنامه تا ابد براتون 0 چاپ میکنه و هیچوقتم تموم نمیشه
برای رفع این موضوع با توجه به برداشتی که من از هدف این برنامه دارم، باید داخل حلقهتون هر بار به مقدار counter یکی اضافه کنین.
و در نهایت:
// main class.
public class amir {
// main Func.
public static void main(String[] args) {
// run AmirFunc Function.
AmirFunc();
}
public static void AmirFunc() {
// two variables that uses in AmirFunc Function.
final String SEPARATOR = new String(new char[20]).replace("\0", "-");
int counter = 0;
// while loop for print numbers from 1 to 100000.
while ( counter < 100000 ) {
System.out.println(counter);
counter++;
}
// if statement for break code if all the things run well.
if ( counter == 100000 ) {
System.out.println(SEPARATOR);
System.out.println("The End...");
}
else {
System.out.println("Error :)");
}
}
}
نکتهی اضافی هم اینکه موقع ساخت متدهاتون با return هم دوست باشین.
موفق باشین.