如何使用布尔语句并返回

时间:2015-03-29 03:05:57

标签: java java.util.scanner

我正在尝试创建一段代码;

如果给定一个int n,则返回true,该值为100或200中的10。

  import java.util.Scanner;
class nearHundred{
public boolean nearHundred(int n){



    Scanner input = new Scanner(System.in);
    n = input.nextInt();

    if(10>=Math.abs(100-n) || 10>=Math.abs(200-n)){
        return true;
    }


    return false;
    }
}

我哪里出错?

2 个答案:

答案 0 :(得分:0)

从评论中看起来你的主要方法是错位的,无论它在哪里,我希望它只在项目中存在一次。从main()方法调用您的类,例如 -

new nearHundred().nearHundred(100); // a call from main method

现在来看你的代码,有几件事需要纠正。您的方法不应该关注Scanner,它的工作是接受输入并检查逻辑。

例如;

public class Utils {
  public static boolean isNearToHundered(int num) {
      return Math.abs(num-100)<=10 || Math.abs(num-200)<=10;
  }
}

负责解析输入的main方法,这是它应该如何工作的。

现在,因为我创建了方法static,您可以像

一样调用
Utils.isNearToHundred(105); // TRUE

答案 1 :(得分:-1)

以下是该方法的外观:

    public void mainMethod() {
     Scanner input=new Scanner(System.in); 
     int val=input.nextInt();
     boolean nearHundredBoolean=nearHundred(val);
     //do something with nearHundredBoolean....


   //Same logic, but passes the input to the method nearHundred
  public boolean nearHundred(int n) {
   if(Math.abs(100-n)<=10 || Math.abs(200-n)<=10)
      return true;
       else return false; 
       }

您应该将扫描仪输入的值传递给此方法的参数要求,而不是在当前方法中不使用参数n。如果出现问题,可能是由于&quot; input.nextInt()&#39;覆盖参数n的值的方法。