我有一项作业,我需要使用用户输入的数据以单独的方法进行某些计算。我的问题是用户输入。应该用一个单独的方法来完成(我不认为我可以使用数组来存储输入)。用户应该能够输入所需的任意多个值,然后使用“ q”退出。然后程序应采用前两个数字,例如面积和体积(使用我未在此处包括的其他方法),显示结果,获取用户输入的下两个数字,计算并显示结果。应该重复此过程,直到达到“ q”值。例如:
Enter your values: 9 5 3 7 q
radius: 9 height: 5
Area = 254
Volume = 424
radius: 3 height: 7
Area = 28
Volume = 65
我遇到的一个问题是,即使第一个变量还剩下更多的数字,用户也必须为下一个变量再次输入数据。
import java.util.Scanner;
public class Stack {
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int radie, height;
radie = userInput("");
height = userInput("");
}
public static int userInput(String message) {
int number = Integer.MAX_VALUE;
while (number == Integer.MAX_VALUE) {
System.out.print(message);
if (input.hasNextInt()) {
number = input.nextInt();
}
input.nextLine();
}
return number;
}
}
我知道这里的代码中存在大量缺陷,我很迷失,甚至不确定从哪里开始解决问题。任何帮助或提示都非常欢迎!预先感谢!
答案 0 :(得分:0)
您是否阅读了'Scanner.hasNextInt()'方法文档? 上面写着: 返回值: 当且仅当此扫描器的下一个标记是有效的int值时,才返回true
那么问
number == Integer.MAX_VALUE
没有感觉。
尝试询问hasNextInt() 返回true或false
编辑:也 为什么您认为数字后总是“ q”?
更改while语句中的条件
答案 1 :(得分:0)
不太了解您的意思,但是我做了一些更改:
Enter your values:
1 2 3 4 5 6 7 8
radius: 1
height: 2
radius: 3
height: 4
radius: 5
height: 6
radius: 7
height: 8
Enter your values:
1 q
radius: 1
Stopped.
Process finished with exit code 0
影响:
dita-ot-3.3/plugins
|
+-- com.acme.html5.param
| |
| +-- plugin.xml
| buildHtml5Param.xml
|
+-- com.acme.html5
|
+-- plugin.xml
|
+--xsl
|
+-- dita2html5_acme_custom.xsl