Как я собираюсь использовать, пока l oop - PullRequest
0 голосов
/ 22 февраля 2020

Я хочу применить эту функцию в java. Внутри пока l oop, вам нужно ввести число повторений, которое вы хотите ввести число. если вы введете число, равное номеру, который вы ввели ранее, оно будет повторяться al oop и снова вводить число. Этот код еще не окончен sh. Я надеюсь, вы понимаете, чего я хочу достичь. спасибо

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

}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

С этим решением связано то, что проверяется только номер, введенный перед текущим. Я понял, что вы хотите проверить, является ли номер, введенный пользователем, уникальным, и его необходимо проверять по каждому номеру, который он вводил ранее.

См. Код для этого:

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;
                        }
                    } 
                }        
        }
    }
}
0 голосов
/ 22 февраля 2020

Давайте использовать временную переменную для хранения значения предыдущего ввода. Если новый ввод такой же, как предыдущий, итератор 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;
    }
}

...