有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java else语句

嗨,我有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

共 (3) 个答案

  1. # 1 楼答案

    您需要在if { }块之外声明变量。条件声明并不是确认变量将一直被声明

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

    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;
    }
    
  2. # 2 楼答案

    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;
      //}
    
  3. # 3 楼答案

    您确定应该使用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范围之外定义变量,以便在外部使用它们