2016-07-08 8 views
0

こんにちは、私が取り組んでいるのは、インスタンス10の番号を調べ、次の番号を調べる方法です。 、9そしてそれらの数字をキャンセルしてfalseを返します。ここ 式の次または最後の値が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のための1つの文字に置き換えることができますこれらのテストの前にテストされています。なぜなら、シーケンスの長さは、URLB 'B2などのように18の異なるインスタンスが存在するため時間の経過とともに長くなるからです。

+1

ないあなたが何を意味するか確認をしてみてください、しかし、あなたは、 ''それ以外の場合(X> = 0 && Math.abs(X-Y)== 1)のようなものを探していますか? – Zircon

+0

あなたは何をしたいですか? –

+0

私は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

あなたのコード例がOPの問題を解決する説明を追加した場合、あなたの答えは大幅に改善されます。 –

+0

@JeenBroekstraアドバイスをいただき、ありがとうございます –

1

あなたは単にうまく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

を返すことができますあなたは9を通過した場合、あなたはので、この

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

を行うことができます、10をx、yとすると、ステートメントはfalseになります。

私はこれがあなたを助けてくれることを願っています。

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

この

関連する問題