Java 我如何获取在for循环迭代中生成的值,并在for循环之外使用它们,但使用相同的方法?

Java 我如何获取在for循环迭代中生成的值,并在for循环之外使用它们,但使用相同的方法?,java,for-loop,Java,For Loop,我希望能够将值从for循环中取出,并为for循环的单独迭代生成单独的值,以便将它们放入for循环下面的比较if/else语句中 public static void calculateBirthdays(Scanner console) { //Print purpose System.out.println("This program compares two birthdays"); System.out.println("and displa

我希望能够将值从for循环中取出,并为for循环的单独迭代生成单独的值,以便将它们放入for循环下面的比较if/else语句中

public static void calculateBirthdays(Scanner console) {
        //Print purpose
        System.out.println("This program compares two birthdays");
        System.out.println("and displays which one is sooner.");

        Calendar cal = Calendar.getInstance();
        int todayYear = cal.get(Calendar.YEAR);
        int todayMonth = cal.get(Calendar.MONTH)+1;
        int todayDay = cal.get(Calendar.DAY_OF_MONTH);

        SimpleDateFormat d = new SimpleDateFormat();

        int todayDayValue = absDayVal(todayMonth, todayDay, todayYear);

        System.out.println("Today is " + d.format(cal.getTime()) + ", day #" + todayDayValue + " of the year.");

        for (int i = 1; i <= 2; i++) {
            System.out.println("Person " + i + ":\nWhat month, day and year were you born?");

            int month = console.nextInt();
            int day = console.nextInt();
            int year = console.nextInt();

            int daysPassed = absDayVal(month, day, year);
            int daysInYear = leapYear(todayYear);

            int daysUntilBday = daysAway(daysPassed, todayDayValue, daysInYear);

            DecimalFormat df = new DecimalFormat("0.##");

            System.out.println(month + "/" + day + "/" + todayYear + " falls on day #" + todayDayValue + " of " + daysInYear + ".");

            if(todayDayValue == daysPassed){
                System.out.println("Happy birthday!");
            } else if (todayDayValue != daysPassed){
                System.out.println("Your next birthday is in " + daysUntilBday + " day(s).");
                System.out.println("That is " + df.format((percentUntil(daysUntilBday, daysInYear)) * 100) + " percent of a year away.");
            }
        }

        if(percent < percent) {
            System.out.println("Person 1's birthday is sooner.");
        } else if (percent < percent) {
            System.out.println("Person 2's birthday is sooner.");
        } else if (percent == percent) {
            System.out.println("Wow, you share the same birthday!");
        }


    }
publicstaticvoidcalculatebirthday(扫描仪控制台){
//印刷用途
println(“这个程序比较两个生日”);
System.out.println(“并显示哪个更快。”);
Calendar cal=Calendar.getInstance();
int todayYear=cal.get(日历年);
int todaymount=cal.get(Calendar.MONTH)+1;
int todayDay=cal.get(日历日/月);
SimpleDataFormat d=新的SimpleDataFormat();
int todayDayValue=absDayVal(今天月、今天日、今天年);
System.out.println(“今天是“+d.format(cal.getTime())+”,day#“+todayDayValue+”);

对于(inti=1;i,您可以像这样在循环外部声明它们

int month;
int day;
int year;

for (int i = 1; i <= 2; i++) {
    System.out.println("Person " + i + ":\nWhat month, day and year were you born?");

    month = console.nextInt();
    day = console.nextInt();
    year = console.nextInt();
    ...
}
int月;
国际日;
国际年;

对于(int i=1;我在循环外声明它们,在循环内赋值。只需补充说明,您的方法
calculatebirthdies
不只是计算生日,实际上应该分为不同的方法。您不会期望名为
calculatebirthdies
的东西使用
Scanner
作为参数r、 我想它需要两个生日作为两个参数或其他什么。