Non duplicates numbers in user input

前端 未结 5 507
野性不改
野性不改 2021-01-24 02:59

I am trying to work out how to create an input validation where it won\'t let you enter the same number twice as well as being inside a range of numbers and that nothing can be

5条回答
  •  轮回少年
    2021-01-24 03:30

    Do it as follows:

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        static int[] numbers = new int[6];
        static Scanner keyboard = new Scanner(System.in);
    
        public static void main(String args[]) {
            // Test
            choose();
            System.out.println(Arrays.toString(numbers));
        }
    
        static void choose() {
            int temp;
            boolean valid;
            for (int i = 0; i < 6; i++) {
                // Check if the integer is in the range of 1 to 59
                do {
                    valid = true;
                    System.out.print("Enter in an integer (from 1 to 59): ");
                    temp = keyboard.nextInt();
                    if (temp < 1 || temp > 59) {
                        System.out.println("Error: Invalid integer.");
                        valid = false;
                    }
                    for (int j = 0; j < i; j++) {
                        if (numbers[j] == temp) {
                            System.out.println("Please enter a different number as you have already entered this");
                            valid = false;
                            break;
                        }
                    }
                    numbers[i] = temp;
                } while (!valid); // Loop back if the integer is not in the range of 1 to 100
            }
        }
    }
    

    A sample run:

    Enter in an integer (from 1 to 59): 100
    Error: Invalid integer.
    Enter in an integer (from 1 to 59): -1
    Error: Invalid integer.
    Enter in an integer (from 1 to 59): 20
    Enter in an integer (from 1 to 59): 0
    Error: Invalid integer.
    Enter in an integer (from 1 to 59): 4
    Enter in an integer (from 1 to 59): 5
    Enter in an integer (from 1 to 59): 20
    Please enter a different number as you have already entered this
    Enter in an integer (from 1 to 59): 25
    Enter in an integer (from 1 to 59): 6
    Enter in an integer (from 1 to 59): 23
    [20, 4, 5, 25, 6, 23]
    

提交回复
热议问题