while循环不会改变变量的值

xji*_*mix 1 java loops while-loop

int time=0;
int x=1;
int w=2;
int y=1;
int h=1;
int t=6;
while (x != w && y != h) {
    boolean s = Abc (a,b,c,time);
    if (s == true) {
        time = time+t;
        x++;
    }
    else if (s = false) {
        time = time++;
    }
}

System.out.println(time);
Run Code Online (Sandbox Code Playgroud)

这是我正在为学校写的程序的一部分,我的问题是,当程序进入while循环时,无论我在循环内部做什么,当它退出并打印变量"time"时,该值与值相同设置在开头.我错过了什么吗?(BTW Abc只是一种方法,当我第一次进入循环时应该返回值true,因此时间值应改为time + t)

Era*_*ran 7

  1. s = false是一项任务,而不是一项比较.无论如何,你不需要测试是否s == false需要一个else子句(因为原始条件检查s == true).
  2. 我们没有理由分配的结果time++time,因为这将撤消增量(后增量运算符返回变量的前值,所以当你分配一个值回变量,取消增量).

更改

else if (s = false) {
    time = time++;
}
Run Code Online (Sandbox Code Playgroud)

else {
    time++;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

正如Anthony Grist评论的那样,即使在这些修复之后,整个while循环也不会被执行,因为y==h在开始时.