Java If-else语句

Java If-else语句,java,Java,嗨,我有3个变量u v w,它要么等于零,要么根据语句执行简单的除法,我想把这3个值应用到下面的另一个if语句中,进行比较,但我假设它不能从上面的语句中读取任何u v w。我怎样才能做到这一点?谢谢 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

嗨,我有3个变量u v w,它要么等于零,要么根据语句执行简单的除法,我想把这3个值应用到下面的另一个if语句中,进行比较,但我假设它不能从上面的语句中读取任何u v w。我怎样才能做到这一点?谢谢

  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{}块之外声明变量。条件声明并不是确认变量将一直被声明

如果您将用0初始化u、v和w,那么代码中的最后三个条件将被消除

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;
}

你确定你应该使用其他if's吗


原始程序无法运行的原因是java没有代数引擎。编译器不知道iftmp==0和iftmp!=0是相反的条件。此外,还可以使用else if。结果是编译器认为存在第三个选项,其中u和其他变量永远不会初始化。此外,大多数java编译器都会强制您在if作用域之外定义变量,以便在外部使用。

我认为最后的语句是不必要的,因为u、v和w已经为零。@CommuSoft:Corrected@KugathasanAbimaran,假设t3=0则不会检查t4和t5的条件。@Himanshu,没有时间检查逻辑,我只是解决了编译错误问题。双u,v,w已经在外部声明。你为什么要在if中再次声明它?@Nisha:一如既往,复制粘贴是一种糟糕的习惯…:为什么一次又一次地声明变量?不要像上面那样比较双精度
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...