java - while循环不会改变变量的值

标签 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);

这是我为学校编写的程序的一部分,我的问题是,当程序进入 while 循环时,无论我在循环中做什么,当它退出并打印变量“time”时,值都是相同的作为一开始设置的值。我错过了什么吗? (BTW Abc只是一个方法,在我第一次进入循环时应该返回值true,所以时间的值应该改为时间+t)

最佳答案

  1. s = false 是赋值,不是比较。无论如何,您不需要测试 s == false,您只需要一个 else 子句(因为原始条件检查 s == true).
  2. 没有理由将 time++ 的结果赋给 time,因为它会撤消增量(后增量运算符返回变量的前一个值,所以当你将该值赋回给变量,你就取消了增量)。

改变

else if (s = false) {
    time = time++;
}

else {
    time++;
}

编辑:

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

关于java - while循环不会改变变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610000/

相关文章:

java - 从android服务启动的线程是否与服务一样运行?

Java KeyListener - 如何检测是否按下了任何键?

java - 空指针异常 getDefaultSharedPreferences()

java - 如何使用 CriteriaBuilder 设置此 SQL 查询?

java - 如何通过按下按钮停止循环

python - while 循环如果到达文件末尾则终止

javascript - for循环不会进入,不知道为什么

python - 将子列表添加到一个列表中作为python中的列表元素

c - While 循环文本文件意外停止

c - 为什么“while(!feof(file))”总是错误的?