【发布时间】:2018-06-29 21:23:35
【问题描述】:
我是 JAVA 的初学者。
我正在编写一个程序,它有一个菜单,让用户能够选择诸如数组大小、数组中的元素等选项。所以我已经完成了所有工作,并且我正在确定边界以在用户输入不同的数据元素时循环返回。
我的问题 - 如果选择了另一个原语,我如何创建一个循环来存储整数和浮点数但回送?
int a;
for (int i = 0; i<array.length;i++) {
boolean validate = false;
System.out.print("Give me a value");
while (validate == false) {
a = input.nextInt();
if (input.hasNextFloat()) {
numbers[i] = input.nextFloat();
validate = true;
}
else if (input.hasNextInt()) {
a = input.nextInt();
numbers[i] = 1.0f *a;
validate = true;
}
else {
System.out.println("This is not an acceptable primitive. Try again");
validate = false;
}
}
}
【问题讨论】:
-
您好@AbbiAb 欢迎使用stackoverflow,我将您的代码缩进以便其他人更容易阅读。
-
int和float扩展Number。因此,您可以创建一个Numbers 数组并在获得另一种类型的输入时对其进行初始化 -
您的问题不清楚。你要解决的具体问题是什么? “如果选择了另一个原语”到底是什么意思?此外,您应该展示您的数组声明,因为这似乎非常相关。
-
最简单的解决方案是从控制台读取字符串并尝试将其解析为 INT 或 FLOAT。如果两个解析都失败,则该条目无效。请记住,Java 数组应该是单类型(int 或 float 但不能同时使用),所以您可能需要将条目保留在字符串数组中?
标签: java arrays loops while-loop primitive