2016-07-08 2 views
0

Привет, так что я работаю над тем, как проверить число, например 10, и посмотреть на следующее число, которое будет равно 11, и число до 10 , 9, а затем для отмены этих чисел и возврата false.Как проверить, существует ли в java следующее или последнее значение в java

public static boolean continue_sequence(int x, int y){ 

    if(x >= 0 && y == -1){ 
     return false; 
    } 
    // above is separate check that works below is the one I am trying to fix 
    else if(x >= 0 && y += 1 || y -= 1){ 
     return false; 
    } 
    else{ 
     return true;  
    } 
} 

здесь является то, что результат выглядит для резервированного случае
U U Testing combination:21 U Ui Testing combination:22 U U2 Testing combination:23

Это все избыточное и может быть заменено одной буквой например комбинации 23 может быть заменено одним Ui, который уже были протестированы до этих тестов, потому что длина последовательности увеличивается с течением времени, потому что существует 18 разных экземпляров (таких как URLB 'B2 и т. д.).

+1

Не уверен, что вы имеете в виду, но вы ищете что-то вроде 'иначе, если (х> = 0 && Math.abs (х-у) == 1)'? – Zircon

+0

Что вы хотите делать вообще?! –

+0

im, пытаясь избавиться от чисел, которые последовательно появляются после другого, так как 9,10,11, я бы не хотел, чтобы номера были в порядке. вместо чего что-то вроде 9,12,16. это помогает @ Zircon? –

ответ

1
public static boolean continue_sequence(int x, int y){ 

    if(x >= 0 && y == -1){ 
     return false; 
    } 
    // This if statement checks if x greater than 0 which our base condition, 
    // second part "((x+1) == y || (x-1) == y)" checks x is sequential to the y  
    else if(x >= 0 && ((x+1) == y || (x-1) == y)) 
     return false; 
    else 
     return true; 

}

+0

Ваш ответ был бы значительно улучшен, если бы вы добавили объяснение _why_ ваш пример кода решает проблему OP. –

+0

@JeenBroekstra Спасибо за совет, я добавил краткий комментарий –

1

Вы можете просто вернуть Math.abs (ху) == 1

public static boolean continue_sequence(int x, int y){ 

     if(x >= 0 && y == -1){ 
      return false; 
     } 

     // above is separate check that works below is the one I am trying to fix 
     return Math.abs(x-y) == 1; 
    } 
1

хорошо, вы можете сделать это

if((x+1 == y) || (x-1 == y)) // x and y are sequential numbers. 
    return false; 
else // something else. 

так что если вы передаете 9 , 10 как x, y, тогда утверждение будет ложным.

Надеюсь, это вам поможет.

1
else if(x >= 0 && (y += 1 || y -= 1)) 

попробовать это