有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javafx Java逻辑异或(“^”)与逻辑非(“!”)

通过查看JavaFX https://github.com/HanSolo/submitbutton/blob/master/src/main/java/eu/hansolo/submitbutton/Demo.java中的一些自定义库

I came along with this piece of code:

                 if (toggle) {  //where toogle is a boolean
                    if (progress > 0.75) {
                            progress = 0;
                            button.setFailed();
                            timer.stop();
                            toggle ^= true;
                        }
                    } else {
                        if (progress > 1) {
                            progress = 0;
                            timer.stop();
                            toggle ^= true;
                        }
                    }
                 }

Question

为什么程序员写toggle ^= true;我理解它的功能following the table below

A   B   A ^ B
0   0     0
0   1     1
1   0     1
1   1     0

而是使用toggle=!toggle;

这是一种模式,它与任何绩效改进有关,还是个人偏好?我很好奇,因为我第一次看到这个


共 (1) 个答案

  1. # 1 楼答案

    FWIW,这不是布尔运算之间的“逐位运算”。这是一种“逻辑操作”。Boolean和Int之间的运算符是不同的,尽管它们是相关的