Как ограничить пользователя вводом числа между определенным диапазоном в java? - PullRequest
0 голосов
/ 16 января 2020

В Java, если вы хотите попросить пользователей, например, вводить цифры только от 1000 до 100 000, программа продолжит работу. В противном случае попросите пользователя снова ввести число в заданном диапазоне.

Редактировать: Здесь моя программа пытается проверить ввод только один раз. Как мне попросить пользователя ввести, пока не будут введены действительные данные (т.е. между 1000-100000)

public static void main(String args[]) {

    Scanner sc = new Scanner(System.in);    
    System.out.print("Principal:");
    double principal = sc.nextDouble();

    if(principal<1000 || principal >100000) {
        System.out.println("enter principal again:");
        principal = sc.nextDouble();        
    }
}

Ответы [ 2 ]

0 голосов
/ 17 января 2020
import java.io.*;
import java.util.*;
import java.lang.*;
import java.math.*;

class Myclass {

    static boolean isInteger(double number){
        return Math.ceil(number) == Math.floor(number); 
    }
    public static void main(String args[]) {

        Scanner in = new Scanner(System.in);    
        double num;
        do{
            System.out.print("Enter a integer between 1000 and 100000 : ");
            num = in.nextDouble();
        }
        while((num < 1000 || num > 100000)||(!isInteger(num)));

        System.out.println("Validated input  : "+num);

    }
}

Надеюсь, это поможет вам

0 голосов
/ 16 января 2020

Вы можете использовать do-while l oop здесь, как показано ниже

public static void main(String []args){
    Scanner in = new Scanner(System.in);
    int result;
   do {
       System.out.println("Enter value bw 1-100");
       result = in.nextInt();
   } while(result < 0 || result > 100);

    System.out.println("correct "+ result);

}
...