如何使用布尔语句和 return

How to use boolean statements and return

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

return 如果给定一个整数 n,则为真,它是 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;
    }
}

我哪里做错了?

方法应该如下所示:

    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。如果有问题,可能是因为'input.nextInt()'方法覆盖了参数n的值。

从评论来看,您的主要方法似乎放错了地方,无论它在哪里,我希望它在一个项目中只存在一次。从该 main() 方法调用您的 class,例如 -

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