Java只执行if条件的最后一部分

时间:2015-06-29 06:36:25

标签: java if-statement

我是一名java初学者。我正面临下面的代码问题。

我正在设置备注并返回响应,但我只会将所有迭代的日期无效打印为备注。如果我将所有输入传递为空,则必须打印 ID为空,但它始终打印日期无效

    public Response getInfoDetails(RequestDetails request)
     {
      Response response = new Response();
      if(Utils.isEmpty(request.getID()))
      {
       response.setREMARKS("ID is empty);
      }

      if(Utils.isEmpty(request.getName()))
      {
       response.setREMARKS("Name is empty);
      }
      if(Utils.isIpAddressValid(request.getIP()))
      {
       response.setREMARKS("IP is invalid");
      }
      if(Utils.isDateValid(request.getDate()))
      {
       response.setREMARKS("Date is invalid");
      }
       return response;
     }

请告知

4 个答案:

答案 0 :(得分:3)

如果您希望仅在条件为假的情况下执行某些代码,则应使用if .. else

答案 1 :(得分:1)

一旦你弄清楚问题是什么 - 你想停下来然后回来。

您可以这样做:

if (Utils.isIpAddressValid(request.getIP()))
{
    response.setREMARKS("IP is invalid");
    return response; // don't proceed - stop and return
}

您也可以使用if..else,但会发现它太冗长且不太可读。

答案 2 :(得分:1)

可以有两种解决方案: 如果它进入任何if语句,你应该返回响应。它不会转向下一个声明。

OR

使用BobTheBuilder提到的else if语句

答案 3 :(得分:0)

我认为代码中存在逻辑错误

if(Utils.isDateValid(request.getDate()))
{
  response.setREMARKS("Date is invalid");
}

如果日期有效,则添加日期无效的备注。检查应该是

if(!Utils.isDateValid(request.getDate()))
{
  response.setREMARKS("Date is invalid");
}

IP地址检查也是如此。