在java中使用3个验证参数进行输入验证

在java中使用3个验证参数进行输入验证,java,validation,input,do-while,Java,Validation,Input,Do While,我有这段代码来验证一个输入,这个输入是相对于一个用户所下的赌注 它需要是一个int 它需要大于0 它需要低于可用信用(用户信用) 如果用户写入字符串,则应显示:input+“不是有效数字” 如果用户将一个整数写在零以下或等于零,它应该连续地说:“请输入一个正数:” 如果用户写入的整数高于可用的积分,则应显示:“不够积分” 我现在掌握的代码如下: Scanner scanner = new Scanner(System.in); int number; do { System.out.

我有这段代码来验证一个输入,这个输入是相对于一个用户所下的赌注

  • 它需要是一个int
  • 它需要大于0
  • 它需要低于可用信用(用户信用)
  • 如果用户写入字符串,则应显示:input+“不是有效数字”
  • 如果用户将一个整数写在零以下或等于零,它应该连续地说:“请输入一个正数:”
  • 如果用户写入的整数高于可用的积分,则应显示:“不够积分”
  • 我现在掌握的代码如下:

    Scanner scanner = new Scanner(System.in);
    int number;
    do {
        System.out.print("Please enter a positive number: ");
        while (!scanner.hasNextInt()) {
            String input = scanner.next();
            System.out.printf(input + " is not a valid number.\n");
        }
        number = scanner.nextInt();
    } while (number < 0);
    
    System.out.printf("You have entered the number " + number);
    
    Scanner Scanner=新的扫描仪(System.in);
    整数;
    做{
    System.out.print(“请输入正数:”);
    而(!scanner.hasnetint()){
    字符串输入=scanner.next();
    System.out.printf(输入+”不是有效数字。\n“;
    }
    编号=scanner.nextInt();
    }而(数量<0);
    System.out.printf(“您已输入数字”+数字);
    
    我有1。二,。用这段代码来解决这个问题,但我不能毫无代价地添加第三(3.)条语句,因为它要求相同的输入加倍,或者它给出了一个错误InputMissMatchException,因为它假定为整数,但在测试中有时会这样做

    这个数字应该是赌注


    请帮助xD

    您的逻辑相当复杂,很难理解。我认为在完成这项任务后,您应该寻求一些帮助,并找到更好的方法来构造这段代码。(目前,讲师通常要求您提交自己的作品,所以我不会试图更改您的代码。)

    按照您现在获取代码的方式,您必须分两部分进行最终检查。首先,检查并决定是否打印错误消息。第二,检查并决定是否继续循环

    do {
        System.out.print("Please enter a positive number: ");
        while (!scanner.hasNextInt()) {
            String input = scanner.next();
            System.out.printf(input + " is not a valid number.\n");
        }
        number = scanner.nextInt();
        if( number > credits )
            System.out.println( "Not enough credits." );
    } while (number < 0 || number > credits);
    
    do{
    System.out.print(“请输入正数:”);
    而(!scanner.hasnetint()){
    字符串输入=scanner.next();
    System.out.printf(输入+”不是有效数字。\n“;
    }
    编号=scanner.nextInt();
    如果(数字>学分)
    System.out.println(“没有足够的学分”);
    }而(数字<0 | |数字>学分);
    
    我不需要附加此代码,如果您提供了一种比此代码更好、更高效、更实用的方法来获取介于1和其他int之间的int输入,请成为我的来宾xD