最短的java代码

时间:2012-08-18 11:20:30

标签: java short

import java.util.*;
public class SoSanh {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int a = input.nextInt();
    int b = input.nextInt();
    if( a > b ) System.out.print("1");
    else if ( a < b ) System.out.print("-1");
    else System.out.print(0);               
}
}

我怎样才能让它尽可能小。它必须像1-2行代码(不包括import,public class和main方法)

这不是作业,我通过互联网上的书籍和作业学习Java。我只想知道它是否可以缩短。这不是关于速度,你们都是误解。

抱歉,我的英语很差。

p / s:现在我不能问任何问题:(我面临的问题只有一个。

5 个答案:

答案 0 :(得分:4)

几乎正确:

System.out.println((int)Math.signum(input.nextInt() - input.nextInt());
由于可能的整数过低,

几乎”。你的长代码实际上可能更快(浮点数上的signum() operaton),更不用说更具可读性了。

答案 1 :(得分:3)

您可以使用IntegerComparable的事实:

Scanner input = new Scanner(System.in);
System.out.println(((Integer)input.nextInt()).compareTo(input.nextInt()));          

答案 2 :(得分:3)

这是Tomasz代码的一个版本,没有整数溢出问题:

System.out.println((int)Math.signum((double) input.nextInt() - (double) input.nextInt());

但是,这太可怕了。

注重可读性,“可能的最短行数”。

答案 3 :(得分:0)

有效的2行:

Scanner input = new Scanner(System.in);
System.out.println(new Integer(input.nextInt()).compareTo(new Integer(input.nextInt())));

答案 4 :(得分:0)

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println(Math.signum(input.nextInt() - input.nextInt()));
}