我在java中有这个代码,代码运行良好
public class MaximumTest {
// determines the largest of three Comparable objects
public static <T extends Comparable<T>> T maximum(T x, T y, T z)
{
T max = x; // assume x is initially the largest
if ( y.compareTo( max ) > 0 ){
max = y; // y is the largest so far
}
if ( z.compareTo( max ) > 0 ){
max = z; // z is the largest now
}
return max; // returns the largest object
}
public static void main( String args[] )
{
System.out.printf(maximum( 3, 4, 5 ) );
}
}
但知道我想从用户那里得到输入而不是最大值(3,4,5)所以我确实喜欢这样:
import java.util.Scanner;
public class MammalInt {
public static <T extends Comparable<T>> T maximum (T x, T y, T z){
T max=x;
if(y.compareTo(max)>0){
max= y;
}
if (z.compareTo(max)>0){
max=z;
} return max;
}
public static void main(String[] args) {
Scanner x=new Scanner(System.in);
Scanner y=new Scanner(System.in);
Scanner z=new Scanner(System.in);
System.out.println(maximum(x,y,z));
}
}
遗憾的是代码不起作用,行中存在问题:System.out.println(maximum(x,y,z));
你有解决这个问题的方法吗?
感谢
答案 0 :(得分:4)
Scanner
对象不是输入。 Scanner
为您提供了一个方法nextInt()
来请求用户输入。
这是您的主要方法的外观:
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int z = sc.nextInt();
System.out.println(maximum(x,y,z));
}
答案 1 :(得分:1)
执行:
Scanner sc = new Scanner(System.in);
System.out.println(maximum(sc.nextInt(), sc.nextInt(), sc.nextInt()));
这样,该方法使用输入值而不是Scanner
本身运行。
答案 2 :(得分:0)
考虑到您没有发布任何错误消息,只发布了代码。我会尝试这样可以纠正你的错误。 也许你可以试试这个:
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int x = s.nextInt();
int y = s.nextInt();
int z = s.nextInt();
System.out.println(maximum(x,y,z));
}