简体   繁体   English

验证负输入

[英]Validation of negative input

I am trying to validate a user input. 我正在尝试验证用户输入。 I don't want the user to enter negative numbers, strings, and doubles number. 我不希望用户输入负数,字符串和双精度数。 I only need int. 我只需要int。 I am only able to validate strings and doubles. 我只能验证字符串和双打。 Your help will be appreciated. 您的帮助将不胜感激。

do {

    System.out.println("How many cappuccino drinks were sold today?");
    if(input.hasNextInt()) {

        cappuccinoDrink = input.nextInt();


            capexpenses = cappuccinoDrink * 1.56;
            capRevenue = cappuccinoDrink * 3.50;
            capProfit = capRevenue - capexpenses;
            isNumber = true;

    }else {
        System.out.println("You didn't didn't enter the require imput");
        isNumber = false;
        input.next();
    }
} while(!isNumber);

Change if(input.hasNextInt()) { to the following: if(input.hasNextInt()) {更改为以下内容:

if(input.hasNextInt() && (cappuccinoDrink = input.nextInt()) >= 0) {
            //removed assignment as it is handled in if statement
            capRevenue = cappuccinoDrink * 3.50;
            capProfit = capRevenue - capexpenses;
            isNumber = true;
}
int cappuccinoDrink;
boolean invalidinput = true;
System.out.println("Please enter a positive integer : ");
while(invalidInput){
   try{
     cappuccinoDrink = input.nextInt();
     if( cappuccinoDrink<= 0) {  
            System.out.println("Please enter a positive integer value: ");
     }
     else{invalidInput=false;}
   }
   catch(InputMismatchException e){
        System.out.println("Please enter a positive integer value: ");
   }
}
        capexpenses = cappuccinoDrink * 1.56;
        capRevenue = cappuccinoDrink * 3.50;
        capProfit = capRevenue - capexpenses;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM