【问题标题】:Giving multiple conditions in for loop in Java [closed]在Java中的for循环中给出多个条件[关闭]
【发布时间】:2011-08-31 16:32:44
【问题描述】:

我正在搜索“如何在 for 循环中给出多个条件?”但是没有给出直接的答案。

经过一番研究,我找到了正确的方法。条件不应以逗号 (,) 或分号 (;) 分隔。我们可以使用 && 运算符将两个条件连接在一起。

for(初始化;条件1 &&条件2;增量)

例子:

for(int j= 0; j < 6 && j < ((int)abc[j] & 0xff) ; j++ ) 
{
//
}

希望这对新的 Java 开发人员有所帮助。

【问题讨论】:

  • JavaBits,您的帖子不是问题,老实说,我会避免在 for 循环中使用复杂的表达式 - 最好让您的代码简单易读。
  • 仅供参考。
  • 您刚刚发现了复合布尔表达式的概念。这并非特定于 for 循环。
  • 有谁知道stackoverflow中的信息应该放在哪里,供以后参考,对大家都有好处。
  • 请保持打开状态,它救了我!

标签: java


【解决方案1】:

你也可以使用“或”运算符,

for( int i = 0 ; i < 100 || someOtherCondition() ; i++ ) {
  ...
}

【讨论】:

    【解决方案2】:

    一个基本的for语句包括

    • 0..n 个初始化语句 (ForInit)
    • 0..1 个表达式语句,计算结果为 booleanBoolean (ForStatement) 和
    • 0..n 更新语句 (ForUpdate)

    如果您需要多个条件来构建您的 ForStatement,请使用标准逻辑运算符(&amp;&amp;|||、...)但是 - 如果变得复杂,我建议使用私有方法:

    for (int i = 0, j = 0; isMatrixElement(i,j,myArray); i++, j++) { 
       // ...
    }
    

    private boolean isMatrixElement(i,j,myArray) {
      return (i < myArray.length) && (j < myArray[i].length);  //  stupid dummy code!
    }
    

    【讨论】:

    • 太尴尬了,我不知道在java中的for循环的初始化和更新中允许多个语句。这是存在但应该非常谨慎使用的东西之一吗?可能是因为可读性
    【解决方案3】:

    可以在 for 循环中使用多个变量和条件,如下例所示。

     for (int i = 1, j = 100; i <= 100 && j > 0; i = i - 1 , j = j-1) {
         System.out.println("Inside For Loop");
     }
    

    【讨论】:

      【解决方案4】:

      如果您更喜欢外观漂亮的代码,您可以休息一下:

      for(int j = 0; ; j++){
          if(j < 6
          && j < ( (int) abc[j] & 0xff)){
              break;
          }
      
          // Put your code here
      }
      

      【讨论】:

      • 实际上我认为这个版本并不比 for (...) 构造中的相同表达式更漂亮。
      • 这对复杂的情况有更好的了解。
      【解决方案5】:

      如果你想这样做,为什么不花点时间,为了省心? :P 不,但说真的,我不知道,看起来还不错,所以谢谢,很高兴知道!

      【讨论】:

        【解决方案6】:

        您也可以用单个方法调用来替换复杂的条件,以减少维护方面的麻烦。

        【讨论】:

          猜你喜欢
          • 2013-09-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-21
          • 2013-05-27
          • 2013-01-27
          • 2012-08-04
          相关资源
          最近更新 更多