gpt4 book ai didi

java - 我是否从我的方法中返回了正确的值以及我是否正确地编写了它?

转载 作者:行者123 更新时间:2023-12-01 06:15:06 24 4
gpt4 key购买 nike

我将在我的问题前声明,我对 Java 非常陌生,所以如果我的代码读起来非常恶心,我深表歉意。

我想做的事情:我正在编写一个程序,它从用户那里获取两个整数,一个低值和一个高值,并将这两个整数发送到两个不同的方法。方法 #1 有一个简单的 for 循环,应该打印出最小数和最大数之间所有 3 或 5 的倍数的数字,方法 #2 做同样的事情,除了 3 或 5 的倍数的数字。还检查该数字是否也是 6 的倍数,如果是,则打印该数字及其旁边的星号。

我遇到的问题:我对我需要从我的方法返回什么以及如何返回任何东西感到非常困惑。这是我第一次正确地处理一个方法(刚刚从“Hello World”向上移动),从我所看到的来看,我实际上根本不需要返回任何内容。我放入我的方法中的所有代码方法几乎完成了程序,所以我想也许返回我发送的整数就足够了,显然还不够。所以,言归正传,这是我的代码。

错误:

javac BonusQ.java
.\MethodOne.java:19: error: illegal start of type
return(int lowestRange, int highestRange);
^
.\MethodTwo.java:36: error: illegal start of type
return(int lowestRange, int highestRange);
^

主要:

import java.util.Scanner;

public class BonusQ
{
public static void main(String [] args)
{
Scanner scan = new Scanner(System.in);

int lowestRange = 0;
int highestRange = 0;

System.out.println("Enter the lowest integer in your range");
lowestRange = scan.nextInt();

System.out.println("Enter the highest integer in your range");
highestRange = scan.nextInt();

MethodOne.NoAsterisk(lowestRange, highestRange);
MethodTwo.Asterisk(lowestRange, highestRange);

}
}

方法一:

public class MethodOne
{
public static int NoAsterisk(int lowestRange, int highestRange)
{
for(int i = lowestRange; i <= highestRange; i++)
{
if (i%5 == 0)
{
System.out.println(i);
}
else if (i%3 == 0)
{
System.out.println(i);
}
}

}

return(int lowestRange, int highestRange);

}

方法二:

public class MethodTwo
{
public static int Asterisk(int lowestRange, int highestRange)
{
for(int i = lowestRange; i <= highestRange; i++)
{
if (i%5 == 0)
{
if (i%5 == 0 && i%6 == 0)
{
System.out.println(i + "*");
}
else
{
System.out.println(i);
}
}
else if (i%3 == 0)
{
if (i%3 == 0 && i%6 == 0)
{
System.out.println(i + "*");
}
else
{
System.out.println(i);
}
}


}


}

return(int lowestRange, int highestRange);
}

抱歉,如果这篇文章读起来有点过分,我只是发现在代码中添加我的想法可能会帮助您向我解释出了什么问题,因为您可能不知道我无能的程度:)

提前致谢。

最佳答案

好的,类(class)有成员。

成员要么是一些变量,要么是变量数组以及类的方法。

所以你得到了

public class MyMethod
{

public static int Asterisk(int loRange, int hiRange)
{
// Do magic let's make a sum for this example

// You enter loRange and hiRange (you defined it above)


return loRange + hiRange // Here the method returns a result

}
}

// So then....

public static void main(String [] args)
{
// WHATEVER IS IN HERE RUNS ALWAYS FIRST.
z = Asterisk(1,2); // 1 and 2 is lo and hi range values ;)
// Z has a value of 3 now because Asterisk(1,2) returns 1 + 2
}

看看这是如何工作的? 现在这是可行的,因为您使用静态定义(这意味着不能首先创建 MyMethod 实例才能使用该方法。这并没有错,但如果您可以让程序使用类实例执行操作,那么您最好这样做。

您使用特殊方法创建一个类的实例,这称为对象。该方法具有类的确切名称并构造它的实例。你现在应该学习构造函数、抽象类等。

我也不能说你做的是错还是对。它是关于程序的全部内容,您应该研究变量和方法的范围以及面向对象编程的封装概念。仅使用静态方法,违背了封装原则,这可能是错误的,但我不能确定。

我希望这对您有所帮助,并为您继续学习提供良好的方向。

PS:要返回多个结果,您应该返回一个变量数组,而不仅仅是一个变量。您也可以不返回任何内容,只让它完成所需数组的工作。这迫使你公开这个数组。 (这不是一个好的做法)

最后,如果需要多个值返回,只需将它们打印在控制台上...好吧,只需在方法中执行即可,不需要真正返回任何内容。

关于java - 我是否从我的方法中返回了正确的值以及我是否正确地编写了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26743826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com