Java-程序中的整数未更新

标签 java

最近,我被老师布置做一个文件,制作一个模拟电视的程序。

我应该在调用 raiseVolume 方法时添加音量。但是,在调用它时,音量似乎没有受到任何影响。

我不知道为什么会这样。

(myTv是Tv中构造函数的对象) 这是电视驱动程序类的代码-

System.out.println ("Crank it up!");        
    int oldVolume = myTv.getVolume();
    do {
        oldVolume = myTv.getVolume();
        myTv.raiseVolume();
    } while (myTv.getVolume() != oldVolume);
    System.out.println ("\t\tThe TV is " + myTv.getPower() +
                        " on channel " + myTv.getChannel() +
                        " at volume "  + myTv.getVolume());

    System.out.println ("That's a bit too loud");
    myTv.lowerVolume();
    myTv.lowerVolume();

这是我的电视类代码-

private int volume = 0;
...
//Volume
public int getVolume(){
    return volume;
}
public void raiseVolume(){
    volume+=5;
}

public void lowerVolume(){
    volume-=1;

    if (volume > 0){
        volume = 0;
    }

}

如果您需要其他代码,我会发布! 我以前曾因为将整个类(class)都放在这里而被叫出来,我不想犯同样的错误!

最佳答案

因为当您在 raiseVolume 之后调用 lowerVolume 时:

public void lowerVolume(){
    volume-=1;

    if (volume > 0){
        volume = 0;
    }

}

它总是将音量设置为 0,因为此时 volume > 0(至少 5),您应该将其更改为:

if (volume < 0){
    volume = 0;
}

关于Java-程序中的整数未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102656/

相关文章:

java - 验证 JAX-RS 中 PUT、POST 方法的空主体请求

java - log4j2 ERROR异常添加回车?

java - 不支持的记录版本 SSLv2Hello 使用 CloseableHttpClient

java - 检查文件中是否存在某条记录

java - sessionfactory创建第一次需要花费大量时间加载

java - Gradle 使用 Gradle 编译和执行具有第三方 jar 依赖项的单个 Java 类 `buildscript`

java - 序列化和子类

java - 将 Spring-Security PasswordEncoder 与默认身份验证提供程序一起使用?

java - 在 RxJava 的 .flatMap() 运算符中处理两种不同类型

java - 编程: open 2 popup windows with one click