2016-07-08 12 views
0

Hallo, woran ich gerade arbeite ist, wie man eine Zahl für Beispiel 10 überprüft und die nächste Zahl, die 11 und die Nummer vor 10 ist , 9 und dann diese Zahlen zu stornieren und falsch zurückgeben. Diese sind alle redundant und können 23 mit einem Buchstaben zum Beispiel Kombination ersetzt werden können, mit einem einzigen Ui ersetzt werden, die bereitsWie überprüft man, ob der nächste oder letzte Wert in einem Ausdruck in Java existiert?

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

hier ist das, was der Ausgang
U U Testing combination:21 U Ui Testing combination:22 U U2 Testing combination:23

wie für einen redundanten Fall sieht wurde vor diesen Tests getestet, weil die Sequenzlänge im Laufe der Zeit länger wird, da es 18 verschiedene Instanzen gibt (wie URLB 'B2 usw.).

+1

nicht sicher, was du meinst, aber suchen Sie so etwas wie 'else if (x> = 0 && Math.abs (x-y) == 1)'? – Zircon

+0

was willst du überhaupt machen ?! –

+0

Ich versuche, Zahlen loszuwerden, die nacheinander nach dem anderen kommen, so wie 9,10,11, ich möchte keine Zahlen in der Reihenfolge haben. stattdessen etwas wie 9,12,16. hilft das @Zircon? –

Antwort

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

Ihre Antwort wäre viel besser, wenn Sie eine Erklärung hinzugefügt hätten, warum Ihr Code-Beispiel das Problem von OP löst. –

+0

@JeenBroekstra Danke für den Hinweis, ich habe einen kurzen Kommentar hinzugefügt –

1

können Sie einfach zurückgeben Math.abs (xy) == 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

gut, können Sie tun, um diese

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

so, wenn Sie 9 passieren , 10 als x, y, dann wird die Aussage falsch sein.

Ich hoffe, das hilft Ihnen.

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

versuchen diese