2016-10-02 9 views
-3

я должен реализовать следующую логику в Java:Как я могу улучшить эту логику?

  1. выполнения Q1 запроса на данных D1 на основе состояния C1
  2. , если результат Q1 больше нуля, то сделать еще один Q2 запроса на данных D2 на основе состояния C2
  3. Если размер Q2 больше нуля, то сделать еще Q3 запроса на данных D2 на основе состояния C3
  4. Если размер Q3 больше нуля, то сделать еще Q4 запроса на данных D2 на основе состояния C4

  5. Теперь, если размер результат Q1 равно нулю, то выполнить В5 запрос на данных D1 на основе состояния C5

  6. Если результат Q5 больше нуля, то выполнить Q6 запроса на данных D3 на основе состояния C2
  7. Если результат Q6 является больше нуля, то выполнение запроса на Q7 данных D3 на основе состояния С3
  8. Если результат Q7 больше нуля, то выполнение запроса Q8 на данных D3 на основе состояния C4

Так я думаю о том, чтобы написать нижеприведенная логика:

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); 
     } 
    } 
    } 

Есть ли лучший способ улучшить эту логику?

+3

Этот код не компилируется, существует несколько синтаксических ошибок. Либо пишите псевдокод или Java, но не микс. Кроме того, вы должны работать над отступом. Прежде чем спросить себя: «Могу ли я улучшить свою логику?» у вас должна быть рабочая версия, даже если она не оптимальна. – Turing85

+1

код не читается, переформатировать его plz – chenchuk

+0

Прочитать http://stackoverflow.com/help/how-to-ask, прежде чем задавать вопросы –

ответ

0

Нет, это не может быть сделано лучше, потому что у вас есть две цепочки зависимостей Q1 -> Q2 -> Q3 -> Q4 и Q5 -> Q6 -> Q7 -> Q8, которые связаны Q1 -> Q5, где A -> B означает, что B выполняется, если A терпит неудачу. Вы должны пройти через эти цепи, как вы это сделали.

Смежные вопросы