Q:

Как сделать так, что бы пользователь бесконечно вводил число, пока ввод не будет верным? 

Задача:нужно ввести чисто с клавиатуры и в нем последние две цифры поменять местами. 
100 < n < 999
n вводим с клавиатуры после смены получаем x.
Я полагаю, что вариантов решений миллион.  Мне хочется через сканер считать ввод, ограничить ввод от 101 до 998 и если число не в диапазоне, то нужно было бы повторно вводить число и в результате поменять местами 2 и 3 цифру: Х равно ... Со сканером я разобрался, но не могу найти нужный метод для ограничения ввода, в случае ошибки возвращаться к повторному вводу и в вводимом числе поменять цифры местами.  Мне не нужен готовый код, просто подтолкните в правильном направлении. 
import java.util. Scanner; // импорт сканера

class Task {
    public static void main(String args[]){
        System.out.print("Введите число: ");
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        System.out.println ("Вы ввели число " + number);
    }
}

java

A:

Вы уже реализовали ввод с клавиатуры и вывод введенного результата.  Осталось обернуть ваш код в цикл и проверять по условию - если введенное число подходит - выходим из цикла и идем дальше, если нет - просим ввести повторно. 
Как именно "перевернуть" цифры в числе - вариантов много.  Как вариант - получить строку из вашего числа и поменять местами символы в строке, затем опять привести к числу.  Можно через арифметические операторы получить три цифры вашего числа - остаток от деления на 10, затем остаток от деления на 10 результата первого деления на 10 и т.д.  Затем, имея 3 цифры - умножить их на нужные разряды и сложить. 
    System.out.print("Введите число: ");
    Scanner scan = new Scanner(System.in);
    int number;
    while ((number = scan.nextInt()) < 100 || number > 999) {
        System.out.println("Введите повторно число от 100 до 999: ");
    }
    System.out.println ("Вы ввели число " + number);

    /// Строка
    byte[] data = String.valueOf(number).getBytes();
    byte temp;
    temp = data[1];
    data[1] = data[2];
    data[2] = temp;
    int newNumber = Integer.parseInt(new String(data));
    System.out.println("Перевернутое число: " + newNumber);

    /// Арифметика
    int[] numbers = new int[3];
    int i = 0;
    while (number ! = 0) {
        numbers[i] = number % 10;
        number = number / 10;
        i++;
    }
    newNumber = numbers[2] * 100 + numbers[1] + numbers[0] * 10;
    System.out.println("Перевернутое число: " + newNumber);

