用户输入,不允许相同的输入两次
问题描述:
我是新来的java,我试图要求用户输入,但我不希望用户能够输入两次相同的数字。以下是我试图用户输入,不允许相同的输入两次
g1 = iBox.getInteger("Enter your 1st number");
g2 = iBox.getInteger("Enter your 2nd number");
if(g1 == g2){
g2 =iBox.getInteger("Number used, please re-enter");
}
g3 = iBox.getInteger("Enter your 3rd number");
if(g3 == g1){
g3 =iBox.getInteger("Number used, please re-enter");
}
else if(g3 == g2){
g3 =iBox.getInteger("Number used, please re-enter");
}
g4 = iBox.getInteger("Enter your 4th number");
if(g4 == g1){
g4 =iBox.getInteger("Number used, please re-enter");
}
else if(g4 == g2){
g4 =iBox.getInteger("Number used, please re-enter");
}
else if(g4 == g3){
g4 =iBox.getInteger("Number used, please re-enter");
}
oBox.print(" " + g1 + " " + g2 + " " + g3 + " " + g4 + " ");
答
- 拿一个
ArrayList
- 扫描从用户的价值,分析,验证添加到
ArrayList
- 做来检查它是否在
list
已经存在
答
我建议您将以前的输入存储在List
或某种集合中。然后,您可以使用.contains(Object o)
方法查看该集合是否已包含特定值。
这将允许您扩展您的应用程序超出固定数量的输入。
答
你应该使用循环和一组。 Pseudocode:
let S be the set of used numbers(or array, if order is important)
clear contents of S
for I = 1 to N, where N is the number of numbers you want to get
int g = iBox.getInteger("Enter Ith number");
while(S.contains(g))
g = iBox.getInteger("Number used, please re-enter");
Add g into S.
你有什么问题吗? – chance
这里没有问题。 “iBox”是什么类型? –
我们可以获得更多信息吗?抛出什么异常(如果有的话)?想必你正在经历意想不到的行为。你能详细说明这种行为吗?我很乐意提供帮助;我只需要知道什么不适用于您的代码(因为乍一看,它看起来不错) –