java - 公共静态双verifyDouble函数不返回
问题描述
我有这个功能,我做了,但它不起作用。有谁知道,如果我输入 5 或更高的数字,为什么它不返回我的错误消息?
public static Map randomMap(Homes[] spots){
System.out.println("Please enter the desired probability");
System.out.println("NOTE: must be written in decimals, so 50% is 0,5");
double homeProbability = verifyDouble(input.nextDouble(), 0, 1);
System.out.println("Please enter the average amount of people in a home");
int avgPeople = verifyInt(input.nextInt(), 1);
int randomInt1 = util.randomInt(20)+1;
int randomInt2 = util.randomInt(20)+1;
return new Map(randomInt1, randomInt2, spots, homeProbability , avgPeople);
}
input.Double 从键盘读取输入。
public static double verifyDouble(double num, double min, double max){
do{
if(num < min && num > max){
System.out.println("Please enter a number between " + min + " and " + max + ":");
num = input.nextDouble();
}
}while(num < min && num > max);
return num;
}
解决方案
条件,num < min && num > max
没有意义,因为num
不能同时小于min
和大于max
。它应该是:
num < min || num > max
这意味着num
小于min
或大于max
。
推荐阅读
- android - 如何确保在 EditText 中仅输入合法数字
- python - 将 PNG 形状转换为 KML 或 GeoJson
- sql - 使用 Sql Join 的最佳实践
- node.js - 如何在 NodeJS 中执行此 JS 脚本
- asp.net-mvc - 如何将选定的下拉列表项保存到asp.net mvc中的数据库表
- vb.net - 每 15 分钟我需要使用 Vb.net 计算数量
- python - “最近”插值方法的 NumPy 百分位数和 TensorFlow 百分位数的不同结果
- angular - 如何从 ngx-timepicker-field 获取用户输入
- flutter - 是否可以在flutter中获取DropDown项目的索引
- css - 如何在样式组件内将鼠标悬停在路由器链接的颜色上?