我将如何使用while循环,如果用户输入相同的输入两次,它将重试



我想在java中应用这个函数。在while循环中,您需要输入要输入的重复次数。如果您输入的数字等于您之前输入的数字,它将重复一个循环并再次输入一个数字。此代码尚未完成。我希望你明白我想要得到什么。谢谢

System.out.print("Enter number of times: ");
int times = number.nextInt();
int i = 1;
while ( i <= times){

System.out.print("Enter a number : ");
int input = number.nextInt();
i++;
if( input == input){
System.out.println("It is already taken");
}
}
}

}

让我们使用一个临时变量来存储以前输入的值。如果新的输入和以前的输入相同,迭代器i不应该增加,所以我们使用i-

System.out.print("Enter number of times: ");
int times = number.nextInt();
int i = 1;
int temp=0;
int inputArray[] = new int[times];
while ( i <= times){
System.out.print("Enter a number : ");
int input = number.nextInt();
i++;
if( input == temp){
System.out.println("It is already taken");
i--;
}else {
inputArray[i-2]=input;
}
temp=input;
}
}

该解决方案的问题是,它只检查当前数字之前刚刚输入的数字。我知道你想检查用户输入的号码是否唯一,必须对照他/她以前输入的每个号码进行检查。

请参阅代码:

import java.util.Scanner;
import java.util.ArrayList;
public class testMe{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter number of times: ");
int times = scanner.nextInt();
int i = 0;
ArrayList<Integer> listWithEntries = new ArrayList<Integer>();
while (i < times){
System.out.print("Enter a number : ");
int input = scanner.nextInt();
if(listWithEntries.size() == 0){
listWithEntries.add(input);
i++;
} else {
for(int j = 0; j < listWithEntries.size(); j++){
if(input == listWithEntries.get(j)){                            
System.out.println("It is already taken!");                            
break;
}
if(j == listWithEntries.size()-1 && input !=            
listWithEntries.get(j)){
listWithEntries.add(input);
i++;
break;
}
} 
}        
}
}
}

最新更新