Java 计数器的值运行不正常
代码应该是这样工作的: 如果Java 计数器的值运行不正常,java,arrays,Java,Arrays,代码应该是这样工作的: 如果 numValue[]={500100,1,10}和l=4那么它应该执行10-1+100+500。 我已经写了一些书面声明来理解哪里出了问题,但我找不到答案 编辑:应从最后一个数字开始检查,如果下一个数字小于上一个,则应从答案中减去,如果大于,则应添加 void计算(){ for(int i=0;i您的问题是每次在for循环中都要重新启动您的答案值。这应该可以解决您的问题: void calculate() { answer=numValue[l-1];
numValue[]={500100,1,10}
和l=4
那么它应该执行10-1+100+500。
我已经写了一些书面声明来理解哪里出了问题,但我找不到答案
编辑:应从最后一个数字开始检查,如果下一个数字小于上一个,则应从答案中减去,如果大于,则应添加
void计算(){
for(int i=0;i您的问题是每次在for循环中都要重新启动您的答案值。这应该可以解决您的问题:
void calculate() {
answer=numValue[l-1];
for(int i=0;i<l-1;i++) {
int c;
if(numValue[l-1-i]<numValue[l-i-2]) {
c=numValue[l-2-i];
answer+=c;
System.out.println("+"+c+" Now : "+answer);
} else {
c=numValue[l-2-i];
answer-=c;
System.out.println("-"+c+" Now : "+answer);
}
}
}
void计算(){
答案=数值[l-1];
对于(int i=0;i,因为您使用answer=numValue[l-1]覆盖每个循环上的答案;
您实际上并不执行上面打印的操作,而是只执行10+500
。将answer
的初始化移出循环。我个人建议在列表上反向循环
void calculate() {
int i=numValue.length - 1
sum = numValue[i];
for(; i > 1; i--) {
curr = numValue[i];
System.out.print(curr);
next = numValue[i-1];
if (next < curr) {
System.out.println("- " + next);
sum -= next;
} else {
System.out.println("+ " + next);
sum += next;
}
}
System.out.println("Result: " + sum);
}
void计算(){
int i=numValue.length-1
总和=数值[i];
对于(;i>1;i--){
curr=数值[i];
系统输出打印(当前);
next=numValue[i-1];
如果(下一个<当前){
System.out.println(“-”+next);
总和-=下一个;
}否则{
System.out.println(“+”+next);
总和+=下一个;
}
}
System.out.println(“结果:+sum”);
}
唯一的问题是,在for
循环的每次迭代中,您都会覆盖answer
的值。
下面的代码将修复它:
void calculate() {
answer=numValue[l-1];
for(int i=0;i<l-1;i++) {
int c;
if(numValue[l-1-i]<numValue[l-i-2]) {
c=numValue[l-2-i];
answer+=c;
System.out.println("+"+c+" Now : "+answer);
} else {
c=numValue[l-2-i];
answer-=c;
System.out.println("-"+c+" Now : "+answer);
}
}
void计算(){
答案=数值[l-1];
对于(int i=0;i到底出了什么问题?我看不出您的需求和代码之间的相关性。。。
void calculate() {
answer=numValue[l-1];
for(int i=0;i<l-1;i++) {
int c;
if(numValue[l-1-i]<numValue[l-i-2]) {
c=numValue[l-2-i];
answer+=c;
System.out.println("+"+c+" Now : "+answer);
} else {
c=numValue[l-2-i];
answer-=c;
System.out.println("-"+c+" Now : "+answer);
}
}