【发布时间】:2014-11-04 19:54:31
【问题描述】:
我会先声明我对 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);
}
抱歉,如果这篇文章读起来有点冗长,我只是发现在代码上添加我的想法可能会帮助您向我解释出了什么问题,因为您可能不知道我的无能程度:)
提前致谢。
【问题讨论】: