Java 在不使用if语句的情况下,向后迭代数组,减少计数器。模的逆
我有一个数组和两个按钮(下一个和上一个)。 单击“下一步”按钮时,MCCurrent索引将更新(++),光标将指向列表中的下一项,而“上一步”按钮则指向相反的项Java 在不使用if语句的情况下,向后迭代数组,减少计数器。模的逆,java,android,arrays,Java,Android,Arrays,我有一个数组和两个按钮(下一个和上一个)。 单击“下一步”按钮时,MCCurrent索引将更新(++),光标将指向列表中的下一项,而“上一步”按钮则指向相反的项 String[] fruits = {"Pineaple", "Orange", "Banana", "Apple"}; int mCurrentIndex = 0; 这是按钮的事件处理程序: nextButton.setOnClickListener(new View.OnClickListener() { @Over
String[] fruits = {"Pineaple", "Orange", "Banana", "Apple"};
int mCurrentIndex = 0;
这是按钮的事件处理程序:
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCurrentIndex = (mCurrentIndex + 1) % fruits.length;
updateFruit();
}
});
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCurrentIndex = (mCurrentIndex - 1);
if(mCurrentIndex < 0){
mCurrentIndex = fruits.length - 1;
}
updateFruit();
}
});
nextButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
mcurrentidex=(mcurrentidex+1)%fruits.length;
更新柚子();
}
});
prevButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
mcurrentidex=(mcurrentidex-1);
如果(mCurrentIndex<0){
mCurrentIndex=果长-1;
}
更新柚子();
}
});
代码工作正常。但我想知道是否有办法将之前的Button代码重构为下一个Button代码(使其更短),方法是删除if语句并替换为模的倒数(如果它存在的话),它仍然可以工作
在每种情况下,当mCurrentIndex到达数组末尾时,它都会被重置
代码工作正常。但我想知道是否有可能
可以将上一个按钮代码重构为下一个按钮
通过消除if语句并替换
用一个模的倒数(如果它存在的话)和
仍然可以工作
我应该这样做
代码工作正常。但我想知道是否有可能
可以将上一个按钮代码重构为下一个按钮
通过消除if语句并替换
用一个模的倒数(如果它存在的话)和
仍然可以工作
应该这样做我想你可以用
public void onClick(View view) {
mCurrentIndex = (fruits.length + (mCurrentIndex - 1)) % fruits.length;
updateFruit();
}
我想你可以用
public void onClick(View view) {
mCurrentIndex = (fruits.length + (mCurrentIndex - 1)) % fruits.length;
updateFruit();
}
用一种方法,
updateFuit(int refIndex) {
mCurrentIndex = (mCurrentIndex + refIndex) % fruits.length;
// Do rest of the updates..
}
对于按钮
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateFruit(1);
}
});
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateFruit(fruits.length - 1);
});
用一种方法,
updateFuit(int refIndex) {
mCurrentIndex = (mCurrentIndex + refIndex) % fruits.length;
// Do rest of the updates..
}
对于按钮
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateFruit(1);
}
});
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateFruit(fruits.length - 1);
});
看起来很有前途。。。我会试试看。。。我会试试的,非常感谢,非常感谢,非常感谢。