繁体   English   中英

如何在 Java 中的一行代码中获取不同变量的输入?

[英]How to take inputs in different variables in one line of code in Java?

假设在 Java 代码中,

{        
double a, b, c;      
Scanner sc = new Scanner(System.in);    
a = sc.nextDouble();      
b = sc.nextDouble();      
c = sc.nextDouble();   
}

由于sc.nextDouble(); 对所有变量都是通用的,我该怎么做才能减少代码行数(不使用数组)?

当人们说“减少行数”时,愚蠢的答案只是删除所有换行符,因为换行符无论如何都没有语义意义。

但我认为你的意思可能是“减少语句的数量”。

通过声明变量并在单个语句中分配它们,您可以仅用两个语句来表达此块的主体:

Scanner sc = new Scanner(System.in);    
double a = sc.nextDouble(),
       b = sc.nextDouble(),
       c = sc.nextDouble();

但是这样做并没有真正的优势,因为它实际上并没有显着减少重复; 和样式指南(例如Google 的 Java 样式指南)积极禁止在单个语句中声明多个变量。

如果您实际上不需要在单独的变量中使用它们,则可以使用数组:

double[] ds = new double[3];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; ++i) ds[i] = sc.nextDouble();

但是,虽然这会阻止您重复sc.nextDouble() ,但您必须改为引入循环 gubbins。

你所拥有的一切都很好。 我唯一要改变的是同时声明和初始化变量。

Scanner sc = new Scanner(System.in);    
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();

如果您真的一心只想编写sc.nextDouble()一次,则可以在初始化枚举时使用带有 double 类型的实例变量的枚举。

public enum DoubleExample {
    A, B, C;   
    public final double value;
    private DoubleExample() { value = new Scanner(System.in).nextDouble(); }
}

当然,如果你使用这个方案, ABC的值在创建后是不能修改的。 此外,由于每个 double 分配使用单独的 Scanner,因此每个 double 都必须在新行中输入,并且每个初始化的变量都会泄漏一些资源。

这是一个包含完整可运行示例的要点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM