[英]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(); }
}
当然,如果你使用这个方案, A
、 B
、 C
的值在创建后是不能修改的。 此外,由于每个 double 分配使用单独的 Scanner,因此每个 double 都必须在新行中输入,并且每个初始化的变量都会泄漏一些资源。
这是一个包含完整可运行示例的要点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.