我正尝试根据比较运算符(三个不同的变量:一个小于,一个大于或大于一个,以及一个等于)来在Java中创建新变量,以研究两年之间两个变量之间的差异>
数据按两年分为两个类别,每年总计100个,如下所示:
2018 X=70% 2019 X=20%
2018 Y=30% 2019 Y=80%
我想对x和y做以下陈述:
我是Java的新手,但这是我尝试过的工作,并使用int和if语句(未在我正在使用的程序-Q中运行)设置新变量
int new_variable_increase;
if (x2019 > x2018) {new_variable_increase}
int new_variable_increase;
if (x2019 > x2018) {new_variable_increase}
答案 0 :(得分:0)
变量的存在(和名称)是静态的,值是动态的。如果该变量不存在,则无法检查其是否存在,即您的代码无法编译。
听起来更像是您需要一个enum
,值DECREASE
,INCREASE
和NO_CHANGE
以及该类型的变量(例如
public enum Difference { DECREASE, INCREASE, NO_CHANGE }
Difference diff;
if (x2019 < x2018) {
diff = Difference.DECREASE;
} else if (x2019 > x2018) {
diff = Difference.INCREASE;
} else {
diff = Difference.NO_CHANGE;
}
// use variable here
当然,如果您真的希望仅在某些条件下存在局部变量,请在if
或else
块内声明该变量:
if (x2019 < x2018) {
int new_variable_decrease = 0;
// use variable here
} else if (x2019 > x2018) {
int new_variable_increase = 0;
// use variable here
} else {
int new_variable_no_change = 0;
// use variable here
}
另一种选择是让所有3个变量都存在,但是只有其中一个具有值,即,只有一个不是null
:
Integer new_variable_decrease = null;
Integer new_variable_increase = null;
Integer new_variable_no_change = null;
if (x2019 < x2018) {
new_variable_decrease = 0; // 0 auto-boxed to Integer.ZERO
} else if (x2019 > x2018) {
new_variable_increase = 0; // 0 auto-boxed to Integer.ZERO
} else {
new_variable_no_change = 0; // 0 auto-boxed to Integer.ZERO
}
// use all 3 variables here.