【发布时间】:2012-01-08 10:02:50
【问题描述】:
我目前正在尝试编写一个程序,该程序要求用户输入一个三位数字,并根据计算机生成的随机 3 位数字对其进行检查。用户输入的号码必须具有三个唯一数字,因为计算机号码也具有三个唯一数字。 到目前为止,我已经设法将用户的三位数字放入一个数组中,每个数组位置都有一个数字,但我无法正确验证它。它能够识别两个相同的数字,因此它需要向用户询问具有 3 个不同数字的新数字(即循环回到开头),直到用户遵守。 System.out.println 只是让我检查它是否选择了两位数。到目前为止,这是我的代码。这是一个方法,而不是整个程序。
public static int[] getUserNumberDebugMode(String compNum){
final int RANDOM_NUMBER_SIZE = 3;
int[]userNumber = new int [RANDOM_NUMBER_SIZE];
String userGuessAsString;
userGuessAsString = JOptionPane.showInputDialog(compNum + "\n Please enter a number.");
int number = Integer.parseInt(userGuessAsString);
// put three digit number individually into array
for(int loop = (userNumber.length - 1); loop>=0; loop--){
userNumber[loop]= number%10;
number = number/10;
} // end userNumber array populating
for (int outerloop = 0; outerloop < userNumber.length; outerloop++){
for (int innerloop = outerloop - 1; innerloop > -1; innerloop --){
while (userNumber[outerloop] == userNumber [innerloop]){
System.out.println("user compare: " + outerloop + " with: " + innerloop);
} // end while loop
}// end inner loop
} // end outer loop
return userNumber;
} // end getUserNumberDebugMode
【问题讨论】:
-
这很难阅读,也很难理解您的要求。究竟是什么不工作?你看到了什么与你期望什么?你已经尝试过什么?
-
当它发现两个数字相同时,它正在无限循环。例如,如果用户输入 323,它应该要求用户输入一个具有唯一数字的数字,例如 326,然后将这些数字放入一个数组中并再次检查。
-
我已经解决了这个问题,但不能在稍后发布我的解决方案。感谢您的所有帮助。
标签: java arrays validation loops