好的,我有这个奇怪的问题.当我尝试更改浮点值时,它不会更改该值.这就是我试图改变它的方式:
static float float1ID;
public void void1() {
if(boolean1) {
float1ID = 56F;
} else if(!boolean1) {
float1ID = 0F;
}
}
Run Code Online (Sandbox Code Playgroud)
完整代码(更改变量,以保持简单.):
static boolean diamond = false;
static boolean iron = false;
static boolean fuel = false;
static boolean gold = false;
static boolean redstone = false;
static boolean circuit = false;
static boolean danger = false;
static boolean valuable = false;
static boolean nether = false;
static boolean farm = false;
static boolean home = false;
static boolean dungeon = false;
static float diamondID;
public void BlockList(){
if(diamond){
diamondID = 56F;
}else{
diamondID = 0F;
}
}
Run Code Online (Sandbox Code Playgroud)
它只是停留在0.你能帮助我吗?谢谢.
使用原始代码:
static float float1ID;
public void void1(){
if(boolean1){
float1 = 56F;
}else if(!boolean1){
float1 = 0F;
}
}
Run Code Online (Sandbox Code Playgroud)
它保持为零,因为你正在改变float1,不是 float1ID,虽然你现在已经编辑了代码来修复它,所以我认为这是一个错字.
唯一的另一种可能性boolean1是总是错误的.否则价值会改变.
此外:
if (boolean1) {
float1ID = 56F;
} else if (!boolean1) {
float1ID = 0F;
}
Run Code Online (Sandbox Code Playgroud)
看起来有点离奇.除非你对我有不同的"布尔/二进制"含义,否则if (!boolean1)完全没必要.你可以使用:
if (boolean1){
float1ID = 56F;
} else {
float1ID = 0F;
}
Run Code Online (Sandbox Code Playgroud)
而且,由于您在评论中声明您确定要更改布尔值,因此需要调试代码.暂时更改为:
System.out.println ("DEBUG A, boolean is " + boolean1 +
", float is " + float1ID);
if (boolean1){
System.out.println ("DEBUG B1");
float1ID = 56F;
} else {
System.out.println ("DEBUG B2");
float1ID = 0F;
}
System.out.println ("DEBUG C, boolean is " + boolean1 +
", float is " + float1ID);
Run Code Online (Sandbox Code Playgroud)
看看会发生什么.