好的,我有这个奇怪的问题。当我尝试更改浮点值时,它不会更改该值。这就是我试图改变它的方式:
static float float1ID;
public void void1() {
if(boolean1) {
float1ID = 56F;
} else if(!boolean1) {
float1ID = 0F;
}
}
完整代码(更改变量,以保持简单。):
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;
}
}
它只停留在0.你能帮助我吗? 感谢。
答案 0 :(得分:6)
使用原始代码:
static float float1ID;
public void void1(){
if(boolean1){
float1 = 56F;
}else if(!boolean1){
float1 = 0F;
}
}
它保持为零,因为您正在更改float1
,而不是 float1ID
,尽管您现在已经编辑了代码来修复它,所以我会假设它是一个错字。
唯一的另一种可能性是boolean1
始终为假。否则值将更改。
另外:
if (boolean1) {
float1ID = 56F;
} else if (!boolean1) {
float1ID = 0F;
}
似乎有点奇怪。除非你对我有不同的“布尔/二进制”含义,否则if (!boolean1)
完全没必要。你可以使用:
if (boolean1){
float1ID = 56F;
} else {
float1ID = 0F;
}
而且,由于您在评论中声明您确定要更改布尔值,因此需要调试代码。暂时更改为:
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);
看看会发生什么。