在Java中使用条件语句创建新变量

在Java中使用条件语句创建新变量,java,if-statement,conditional-statements,Java,If Statement,Conditional Statements,我试图在Java中基于比较运算符(三个不同的变量:一个表示小于,一个表示大于,一个表示等于)创建新变量,以检查两年之间两个变量之间的差异 数据分为两类,为期两年,每年总计100个,如下所示: 2018 X=70% 2019 X=20% 2018 Y=30% 2019 Y=80% 我想对x和y做以下陈述: 如果x 2019大于x 2018,则新的变量将减少 如果x 2019小于x 2018,则新的变量将减少 如果x 2019等于x 2018,则新变量不改变 我对J

我试图在Java中基于比较运算符(三个不同的变量:一个表示小于,一个表示大于,一个表示等于)创建新变量,以检查两年之间两个变量之间的差异

数据分为两类,为期两年,每年总计100个,如下所示:

2018 X=70%        2019 X=20%
2018 Y=30%        2019 Y=80%
我想对x和y做以下陈述:

  • 如果x 2019大于x 2018,则新的变量将减少
  • 如果x 2019小于x 2018,则新的变量将减少
  • 如果x 2019等于x 2018,则新变量不改变
我对Java不熟悉,但这正是我尝试的,我用int和if语句设置了一个新变量(在我使用的程序-Q中没有运行)

变量的存在(和名称)是静态的,值是动态的。如果变量不存在,则无法检查它是否存在,即代码无法编译

听起来更像是您需要一个
枚举
,其值为
减少
增加
无变化
,以及该类型的变量,例如

public enum Difference { DECREASE, INCREASE, NO_CHANGE }
另一种选择是让所有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.
整数新变量减少=null;
整数新变量增加=空;
整数new_variable_no_change=null;
如果(x2019x2018){
新_变量_increase=0;//0自动装箱为整数.0
}否则{
新变量\u no\u change=0;//0自动装箱为整数.0
}
//在这里使用所有3个变量。

这些行是相同的。另外,您还没有问任何问题。将现有变量名作为语句写入时,您预期会发生什么?您的最终目标是能够说,例如,类别X减少了50%,而类别Y增加了50%?
Difference diff;
if (x2019 < x2018) {
    diff = Difference.DECREASE;
} else if (x2019 > x2018) {
    diff = Difference.INCREASE;
} else {
    diff = Difference.NO_CHANGE;
}
// use variable here
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
}
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.