【问题标题】:How can I improve this logic?我该如何改进这个逻辑?
【发布时间】:2016-10-02 19:46:07
【问题描述】:

我必须在java中实现以下逻辑:

  1. 根据条件 C1 对数据 D1 执行查询 Q1
  2. 如果 Q1 的结果大于零,则根据条件 C2 对数据 D2 再次查询 Q2
  3. 如果 Q2 大小大于零,则根据条件 C3 对数据 D2 再次查询 Q3
  4. 如果 Q3 大小大于零,则根据条件 C4 对数据 D2 再次查询 Q4

  5. 现在如果 Q1 结果大小为零,则根据条件 C5 对数据 D1 执行查询 Q5

  6. 如果 Q5 的结果大于零,则根据条件 C2 对数据 D3 执行查询 Q6
  7. 如果 Q6 的结果大于零,则根据条件 C3 对数据 D3 执行查询 Q7
  8. 如果 Q7 的结果大于零,则根据条件 C4 对数据 D3 执行查询 Q8

所以我正在考虑编写以下逻辑:

 R1 = getResult (dataset D1, condition C1); 
 //Query on data D1 based on  condition C1;
 if (R1 is not null)
 {
   R2  = getResult (dataset R1, condition C2);//  Query on data R1 based on condition C2;
   if(R2 is null)
   {
     R3 = getResult (dataset R1, condition C3);// Query on data R1 based on condition C3
     if(R3 is null)
     {
       R4 = getResult (dataset R1, condition C4);// Query on data R1 based on condition C4
       display(R4);
     }
     else
     {
       display(R3);
     }
   }
   else
   {
     display(R2);
   }
 }
 else
 { 
   R5 = getResult (dataset D1, condition C5);
   if(R5 is not null)
   {
     R6 = getResult (dataset R5, condition C2);//Query on data R5 based on condition C2;
     if(R6 is null)
     {
        R7 = getResult (dataset R5, condition C3);//Query on data R5 based on condition C3
        if(R7 is null)
        {
          R8 =  getResult(dataset R5, condition C4);//Query on data R5 based on condition C3
        }
        else
        {
          display(R8); 
        }
      }
      else
      {
        display(R6);
      }
    }
  }

有没有更好的方法来改进这个逻辑?

【问题讨论】:

  • 这段代码无法编译,有几个语法错误。要么编写伪代码,要么编写 Java,但不能混合使用。此外,您应该处理缩进。在问自己“我可以改进我的逻辑吗?”之前你应该有一个工作版本,即使它不是最佳的。
  • 代码不可读,请重新格式化
  • @Turing85,这段代码还没有用任何语言编写,它只是我在编写代码之前思考的实现逻辑。
  • @beautifulday 正如我所说:要么编写伪代码,要么编写实际代码。您发布的内容是混合的。

标签: java algorithm logic


【解决方案1】:

不,它不能做得更好,因为你有这两个依赖链 Q1 -> Q2 -> Q3 -> Q4 和 Q5 -> Q6 -> Q7 -> Q8 由 Q1 -> Q5 连接,其中 A - > B 表示如果 A 失败则执行 B。你必须像你已经实现的那样经历这个链条。

【讨论】:

    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多