2016-07-07 30 views
-3

假設我有1至5個數字,我想:Java的落實執行時之間的簡單循環的循環迴路

decreaseincrease新的價值,並檢查1和5之間(即邊界條件是循環的,使得)

如果其大於5然後必須是0 如果小於0則必須在5

如果其不大於5及其不小於0,則值可以decreaseincrease

它之間有兩個號碼循環,我的代碼似乎其不正確

/* listCount is 5 */ 
/* currentPosition is 1 */ 

/* sample(currentPosition --) */ 
protected void sample(int position) { 
    if (position < 0 && position < listCount) 
     position = 5; 
    else if (position >= listCount) 
     position = 0; 
    else 
     currentPosition = position; 
} 

在此代碼currentPosition --爲0,則必須在5否則會降低

瞭解更多信息:

增加位置直到它不是6.如果它是> 5那麼必須是0或減少位置直到它不是0.如果它的< 1那麼必須是5

+5

請更好地解釋一下自己,可能有一些輸入/輸出的例子。 – Idos

+0

@Idos模擬兩個數之間的簡單循環,如果currentPosition是<0:必須是5,如果它的> 5則必須是0,否則'currentPosition'可以'減少'或'增加' –

+0

什麼會改變位置?你是否需要布爾值,無論位置是否增加/減少?什麼是最終目標? –

回答

0

這個邏輯看起來關閉

if (position < 0 && position < listCount) 

如果position = 1將位置復位到5 - 這什麼都不做。

我想你想要做的功能是:

protected void sample(int position) { 
    if (position < 0) { 
     currentPosition = 5; 
    } else if (position >= listCount) { 
     currentPosition = 0; 
    } else { 
     currentPosition = position; 
    } 
} 

我會建議增加和減少功能分開

protected void increase() { 
    if (currentPosition == listCount) { 
     currentPosition = minValue; 
    } else { 
     currentPosition++; 
    } 
} 

protected void decrease() { 
    if (currentPosition == minValue) { 
     currentPosition = listCount; 
    } else { 
     currentPosition--; 
    } 
} 
+0

它似乎方法不能正常工作 –

+0

我沒有零循環 –

+0

將0更改爲一個名爲'minValue'的變量,並將它設置爲等於1 –

0

我想,如果我理解正確的話,要循環汽車無? 無論如何,這就是我正在從你關於'循環'的問題中去掉評論中的信息。以兩種不同的方法分割「循環」和「循環」是一個好主意。要循環,你可以使用這個:

public void increaseloop(int position) 
{ 
    if(position > 5 || position < 0){ 
     position = 0; 
    } 
    for(; position <= 5; position++){ 
     System.out.println(position); 
     if(position == 5){ 
      position = -1; 
     } 
    } 
} 

這將不斷循環數字0,1,2,3,4,5。我相信,如果這實際上是你在尋找的東西,你也可以實現這個方法來循環。