java - 不同状态之间的布尔交替而不被更新
问题描述
我有一个名为 Node 的类,根据变量oddNode 需要调用不同的函数,但是在将oddNode 调试到控制台时,它会在true 和false 之间交替,将truefalsetrue 打印到控制台。关于这可能是什么的任何想法?
boolean oddNode;
network.add(new Node[dataIn.length]);
for (int i = 1; i <= layers; i++) {
int nLength = network.get(i - 1).length - 1;
if (nLength % 2 == 0) {
oddNode = false;
network.add(new Node[nLength / 2]);
} else {
oddNode = true;
network.add(new Node[(nLength - 1) / 2]);
}
Node[] currentLayer = network.get(i - 1);
int cnLength = network.get(i).length - 1;
System.out.println(oddNode);
if (oddNode = false) {
System.out.println("triggered first statement");
for (int j = 1; j <= cnLength; j++) {
network.get(i)[j - 1].DualInputCalculation(currentLayer[j - 1], currentLayer[j]);
}
} else if(oddNode) {
System.out.println("triggered second statement");
network.get(i)[0].TripleInputCalculation(currentLayer[0], currentLayer[1], currentLayer[2]);
for (int j = 4; j <= cnLength; j++) {
network.get(i)[j - 1].DualInputCalculation(currentLayer[j - 1], currentLayer[j]);
}
}
}
解决方案
- 您正在打印循环
oddNode
内部。for
- 您有一份
if...else
声明负责更改您的oddNode
此if-else
块正在执行更新
if (nLength % 2 == 0) {
oddNode = false;
network.add(new Node[nLength / 2]);
} else {
oddNode = true;
network.add(new Node[(nLength - 1) / 2]);
}
推荐阅读
- azure - AttributeError:模块“django.db.models”没有属性“JSONField”
- python - 如何让这个 graphics.py 代码中的动作更流畅?
- html - CSS网格拉伸行内容以适应父容器
- angular - 在 iPhone X safary 和 chrome 上基于 Angular 8 的应用程序中间歇性超出最大调用堆栈大小
- c# - 如何使用字典作为 api 的数据?
- java - Rust 标准输出未在 Java 应用程序中打印
- html - 如何防止图像在 CSS 中的网格布局上放大/缩小时移动和拉伸?
- python - 如何使用数据框一列匹配字典值以获取字典键
- git - 将所有课堂作业保存在一个存储库中
- javascript - 映射和替换不解密简单语句并返回未定义数组