我正在尝试弄清楚如何在编写单独的方法时从一个方法访问返回的值/变量

i'm trying to figure out how to access a returned value/variable from one method while writing a seperate method

提问人:entropeutic 提问时间:2/3/2023 最后编辑:Hovercraft Full Of Eelsentropeutic 更新时间:2/3/2023 访问量:40

问:

我了解他们做什么以及他们的目的是什么,我已经成功地使用过他们很多次。但似乎有些我还不明白的事情一直在阻碍。例如,我被指派创建一个程序来提示用户输入他们的生日,然后计算他们生日的天数。main 不应该有任何 print 语句,只有方法。这是我写的一种方法:

public static int inputUser () {
    Scanner console = new Scanner(System.in);
    
    System.out.println("Please enter your birthday: ");
    System.out.print("What is the month (1-12)? ");
    int month1 = console.nextInt();
    if (month1 == 4 || month1 == 6 || month1 == 9 || month1 == 11) {
        System.out.print("What is the day   (1-30)? ");
    } else if (month1 == 1 || month1 == 3 || month1 == 5 || month1 == 7 || month1 == 8 || month1 == 10 || month1 == 12) {
        System.out.print("What is the day   (1-31)? ");
    } else if (month1 == 2) {
        System.out.print("What is the day   (1-28)? ");
    }
    int day1 = console.nextInt();
    int absBday = daysInMonth(month1, day1);
    System.out.println(month1 + "/" + day1 + " is day #" + absBday + " of 365.");
    return absBday;

我想在我正在编写的另一个方法中使用返回值,但我不知道如何访问新方法的这个返回值。另一种方法基本上会计算从今天到用户输入的生日有多少天,我已经成功编写了另一种方法来确定任何给定的一天是一年中的多少天,我只需要这个返回的“第 # 天”来做最后一个小方法。有人得到任何指示吗?

我基本上只是尝试了我的直觉已经知道行不通的事情,比如尝试在我正在编写的新方法中调用 absDays,尝试在参数中使用声明的类型和变量定义 userInput 方法,使用 AND 而不将其与 absDay 变量名称匹配......基本上,我已经知道的一堆东西是行不通的,但有时当我在做实验时,我会有一个 AHA!即使我正在尝试一些显然行不通的东西,但 AHA!时刻从未:(

Java 方法 返回 return-value return-type

评论

0赞 daniu 2/3/2023
我不认为从年初开始的天数对于询问用户生日的方法来说不是一个好的返回值。听起来问题不在于您不知道如何使用方法的结果,而在于您不清楚您的数据应该如何实现您的目标。尝试从此函数返回 a,看看是否可以使用它。LocalDate
0赞 entropeutic 2/3/2023
我所需要的只是在 main 中声明一个变量并将其初始化为我上面说明的方法,然后该方法将保存有问题的返回值,能够将该新声明的变量作为参数传递给另一个方法。从年初开始的天数实际上是程序的一部分,也是它如何运作的一部分,所以你误解了,但我可能太模糊了。我本可以包含整个程序,但我不希望所有未完成的代码妨碍有用的答案。不过,这是我的第一篇文章,病态会好转。感谢您的反馈!

答:

0赞 vinodhraj 2/3/2023 #1

我不确定我是否完全理解你的问题。但我认为以下方法可能会奏效。

public static int inputUser(){
 // Your code in question
}

public static int theOtherMethod(int n){
 // already working method
}

你只需要打电话

int nDays = theOtherMethod(inputUser());
0赞 entropeutic 2/3/2023 #2

我只是想发布我最终所做的事情,供任何浏览帮助的人使用。

我所需要的只是在 main 中声明一个变量并将其初始化为我上面说明的方法,该方法包含我想要的返回值,然后该方法也将保存该返回值,从而允许我将该新声明的变量作为参数传递给另一个方法,我实际上需要这样做两次, main/2 中的两个新变量返回来自 2 种不同方法的值,以实现我想要的结果。

在检查我的答案之前,我实际上解决了我自己的问题。不知道大家有没有听说过橡皮鸭法?如果你被卡住了,大声地向橡皮鸭或任何东西或朋友大声提出你的问题,无论他们是否知道你在问什么,因为说明问题的过程彻底激活了你分析中的其他有用资源。基本上,在我给我的教授发电子邮件然后在这里发布这个问题之后,我回到了我的程序中,突然有了更清晰、几乎像禅宗一样的视角,并开始更有效地连接点,这让我发现了自己问题的答案。谢谢你们的时间!这个网站帮了大忙