首页 > 解决方案 > 公共静态双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;

}

标签: javaarrays

解决方案


条件,num < min && num > max没有意义,因为num不能同时小于min和大于max。它应该是:

num < min || num > max

这意味着num小于min或大于max


推荐阅读