2016-07-07 55 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。我相信,如果这实际上是你在寻找的东西,你也可以实现这个方法来循环。