1
while(true) {
	//Contrôle numérique
	while(true) {
		if(sc.hasNextInt()) {
			a = sc.nextInt();
			break;
		}else {
			System.out.println("Veuillez saisir à nouveau le numéro");
			sc.next();
		}
	}
	//Vérification de l'état
	if(a >= 0) {
		break;
	}else {
		System.out.println("Veuillez saisir à nouveau le numéro");
	}
}
public static int check(Scanner sc) {
	int a = 0;
	while (true) {
        //Contrôle numérique et contrôle de l'état(Impossible)
		if (sc.hasNextInt() && a >= 0) {
			a = sc.nextInt();
			System.out.println("Le numéro saisi est:" + a);
			break;
		} else {
			System.out.println("Veuillez saisir à nouveau le numéro");
			sc.next();
		}
	}
	return a;
}
Celui ci est mieux! Si vous en avez, s'il vous plaît!
import java.util.Scanner;
import java.util.function.Function;
public class ValidatingInput {
    //(Mémo personnel)Function<T, R>Méthode abstraite. Prend un argument de type Integer et renvoie une valeur de type Boolean.
    public static int inputInteger(Scanner sc, Function<Integer, Boolean> isValid) {
        while (true) {
            System.out.print("Veuillez saisir un nombre: ");
            System.out.flush();
            if (sc.hasNextInt()) {
                int value = sc.nextInt();
                //(Mémo personnel)La vérification de l'état par reçu estValide
                if (isValid.apply(value)) {
                    return value;
                }
                System.out.println("C'est un nombre en dehors de la plage.");
            } else {
                System.out.println("Ce n'est pas une valeur numérique.");
                sc.next();
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //(Mémo personnel)Passer la condition en argument
        int a = inputInteger(sc, value -> value >= 0);
        System.out.println("Le numéro saisi est:" + a);
    }
}
Tous les commentaires seront ajoutés ultérieurement sous forme de notes personnelles.
Function<T, R> apply(T)C'était la première fois que je touchais, mais "[java.util.fonction Le mémo d'utilisation de l'interface de fonction suivant](https://qiita.com/opengl-8080/items/22c4405a38127ed86a31)J'ai pu le comprendre en référence à.
 Merci, shiracamus.