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

时间:2019-06-14 00:26:47

标签: 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,则new_variable_decrease
  • 如果x 2019小于x 2018,则new_variable_decrease
  • 如果x 2019等于x 2018,则new_variable_no_change

我是Java的新手,但这是我尝试过的工作,并使用int和if语句(未在我正在使用的程序-Q中运行)设置新变量

int new_variable_increase;
if (x2019 > x2018) {new_variable_increase}

int new_variable_increase;
if (x2019 > x2018) {new_variable_increase}

1 个答案:

答案 0 :(得分:0)

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

听起来更像是您需要一个enum,值DECREASEINCREASENO_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

当然,如果您真的希望仅在某些条件下存在局部变量,请在ifelse块内声明该变量:

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.