繁体   English   中英

Java If else语句

[英]Java If else statement

嗨,我有3个变量uvw,它要么等于零,要么根据语句执行简单的除法运算。我想将这3个值应用于下面的if语句中的另一个值,以进行比较,但是我假设它可以从以上陈述中看不到任何紫外线。 我该如何工作? 谢谢

  if(t3 != 0){
      double u = t/t3;
  }
  else if(t4 != 0){
      double v = t1/t4;
  }
  else if(t5 != 0){
      double w = t2/t5;
  }
  else if(t3 == 0){
      double u = 0;
  }
  else if(t4 == 0){
      double v = 0;
  }
  else if(t5 == 0){
      double  w = 0;
  }



   if((u == v) && (v == w))  
   {
            blah blah


        }
       else 
             blah blah

if条件之外定义这些变量。 在您的情况下,变量的作用域位于if条件的大括号内

double u = 0;
double v = 0;
double w = 0

if(t3 != 0){
       u = t/t3;
  } else if(t4 != 0){
       v = t1/t4;
  } else if(t5 != 0){
       w = t2/t5;
  }
  //else if(t3 == 0){ // Seems, these conditions are redundant, since those variables are already zero
  //     u = 0;
  //}
  //else if(t4 == 0){
  //    double v = 0;
  //}
  //else if(t5 == 0){
  //      w = 0;
  //}

您需要在if { }块之外声明变量。 条件声明不能确认变量将始终被声明。

如果将uvw初始化为u ,则将消除代码中的最后三个条件。

double u = 0.0d, v = 0.0d, w = 0.0d;

if(t3 != 0){
    u = t/t3;
} 
else if(t4 != 0){
    v = t1/t4;
}
else if(t5 != 0){
    w = t2/t5;
}

您确定是否应该使用else if

double u = 0.0d, v = 0.0d, w = 0.0d;
if(t3 != 0){
    u = t/t3;
}
if(t4 != 0){
    v = t1/t4;
}
if(t5 != 0){
    w = t2/t5;
}
//.. do other stuff...

原始程序无法运行的原因是因为Java没有代数引擎。 编译器不知道if(tmp == 0)if(tmp != 0)是相反的条件。 此外,如果使用else if 结果是编译器认为存在第三个选项,其中u (和其他变量)从未初始化。 此外,大多数Java编译器都会强制您在if-scope之外定义变量,以便在外部使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM