如何使用带有布尔值的If语句以及如何读取用户输入

时间:2018-11-05 10:33:11

标签: java if-statement boolean

昨天我写了一篇关于这个问题的文章,但是我写了这么整整一整天的东西完全是错误的。

我想做的是通过让用户输入两个坐标来测试我的IsInRoom方法,我无法弄清楚如何让IF语句读取用户输入,并且每次都使用{{1} }出现错误,提示“类型room中的方法r.IsInRoom不适用于double参数。

我尝试了许多不同的方法来完成此操作,每次我最终回到同一位置时。如果有人对Java真正陌生,那么如果您能给我一些有关如何正确使用这些功能的指示,那将是很棒的吗?

我已经对If else语句进行了更改,但是出现了此错误

IsInRoom(Point)

我认为这是因为我没有将用户输入分配给if语句吗?但我不确定你怎么做

   Exception in thread "main" java.lang.NullPointerException
    at CurtisBaldwin.buildingconsole.Room.isInRoom(Room.java:85)
   at aCurtisBaldwin.buildingconsole.Room.main(Room.java:115)

2 个答案:

答案 0 :(得分:1)

您犯了这个错误

P.getX()P.getY()返回double,但在IsInRoom参数中,您期望Point:)

另一点是,直到java 11,我们才像其他人那样支持else块中的参数,例如:

else (r.IsInRoom(P.getXY() ) )

答案 1 :(得分:1)

错误指出了问题所在。您的isInRoom方法需要一个Point参数,但是在您的if(r.isInRoom(P.getX()))if(r.isInRoom(P.getY()))中,getX()getY()double类型,这就是您得到错误的原因。

只需将if-else的构造更改为此:

if(r.isInRoom(P)){
  System.out.println((int)P.getX() + "," + (int)P.getY() + "Is in room");
} else{
  System.out.println((int)P.getX() + "," + (int)P.getY() + "Is not in room");
}

足够修复它。

PS:方法和变量通常在camelCase中,因此IsInRoom应该是isInRoom。这不是必需的,但这是Java编程的最佳实践。