我需要从用户那里获取一个开始和结束的数字范围,并制作一个方法,将数字范围返回给用户,包括例如1, 2, 3, 4
我的方法返回两次包含最终值的值,我想是因为我在这里设置了返回类型。有没有办法可以改变我的方法以更好地工作?
class Test
{
public static void main ( String[] args )
{
//Setup a Scanner
Scanner scan = new Scanner ( System.in ) ;
//Declare Variables
byte startNum = 0 ;
byte endNum = 0 ;
//Get User Input//
System.out.println ( " Please enter the starting range: " ) ;
startNum = scan.nextByte() ;
System.out.println ( " Please enter the final range: " ) ;
endNum = scan.nextByte() ;
//Call method
System.out.println ( numberPrinter ( startNum, endNum ) ) ;
}
// A method to print out all the numbers between startNum and endNum.
static byte numberPrinter ( byte a, byte b )
{
byte range = 0 ;
while ( a <= b )
{
range = a ;
System.out.println ( range ) ;
a++ ;
}
return range ;
}
答案 0 :(得分:3)
方法numberPrinter打印从startNum到endNum的所有数字,因此打印方法的返回值没有意义。
只需从行中删除打印件:
System.out.println ( numberPrinter ( startNum, endNum ) ) ;
为:
numberPrinter ( startNum, endNum )
答案 1 :(得分:1)
将numberPrinter()
函数的返回类型更改为void
,并避免在numberPrinter()
函数内打印main()
的返回值。只需拨打numberPrinter()
功能即可。请注意,range
函数内部不需要变量numberPrinter()
,您可以直接使用变量a
。
public static void main(String[] args) {
// your code goes here
//Call method
numberPrinter(startNum, endNum);
}
// A method to print out all the numbers between startNum and endNum.
static void numberPrinter(byte a, byte b) {
while (a <= b) {
System.out.println(a);
a++;
}
}
如果您有兴趣将指定范围内的所有数字从numberPrinter()
返回到main()
然后打印,则可以执行以下操作。
public static void main(String[] args) {
// your code goes here
//Call method
byte[] result = numberPrinter(startNum, endNum);
for (byte value : result) {
System.out.println(value);
}
}
// A method to return all the numbers between startNum and endNum.
static byte[] numberPrinter(byte a, byte b) {
byte[] range = new byte[b - a + 1];
for (byte i = a; i <= b; i++) {
range[i - a] = i;
}
return range;
}
答案 2 :(得分:0)
您正在打印numberPrinter()
的返回值,这是最后一个值。从main()
删除最后一个打印语句,并将返回类型更改为void
:
public static void main ( String[] args )
{
//...
//Call method
numberPrinter ( startNum, endNum ) ;
}
// A method to print out all the numbers between startNum and endNum.
static void numberPrinter ( byte a, byte b )
{
while ( a <= b )
{
System.out.println ( a++ ) ;
}
}
答案 3 :(得分:0)
要求用户输入数字a和b并使用显示您的while
a++
直到a < b