[英]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.