简体   繁体   中英

How am i going to use while loop and if else if user enter the same input twice and it will try again

I want to apply this function in java. Inside while loop, you need to input number of repetition you want to input a number. if you input a number that equals to the number that you enter previously, it will repeat a loop and enter a number again. This code is not finish yet. I hope u understand what i want to achive. thank you

    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");
            }
    }
}

}

Let's use a temp variable to store the value of previous input. If new input is same as previous input, the iterator i should not increase, so we use 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;
    }
}

The thing with that solution is that is only checks for the number just entered before the current one. I understood that you want to check that the number the user entered is unique and it has to be checked against every number that he/she has entered before.

See the code for that:

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;
                        }
                    } 
                }        
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM