【问题标题】:How to use a value outside for loop如何在for循环之外使用值
【发布时间】:2011-04-12 02:45:51
【问题描述】:

在下面的代码中,我需要 varArray[i] 的值来执行 if-else 语句,但 if-else 语句只能执行一次。 如果我将 if-else 语句放在 for 循环之外,则 if-else 语句会正确执行。 当我将 if-else 语句放在 for 循环中时,if-else 语句会被执行多次。

for (int i=0;i<varArray.length;i++) 
{
    varArray[i]= rand.nextInt(1999)-1000;
    System.out.println(varArray[i]);


    if(d==varArray[i])
    {
        System.out.println(d);      
        System.out.println(i+1);
    }  
    else if(d!=varArray[i])
    { 
        System.out.println(d);
        System.out.println(0);
    }
}

在这方面需要帮助。已经找了好几个小时了

【问题讨论】:

    标签: java for-loop if-statement


    【解决方案1】:
    if(d==varArray[i])
    

    你的意思是说 if(varArray[i]=='d') 吗?

    或者d是一个变量?

    【讨论】:

      【解决方案2】:

      你可以使用break;当 if 语句为真时退出 for 循环。

      for (int i = 0; i < varArray.length; i++) {
          varArray[i] = rand.nextInt(1999) - 1000;
          System.out.println(varArray[i]);
      
          if (d == varArray[i]) {
              System.out.println(d);      
              System.out.println(i + 1);
              break;
          }
          else if(d != varArray[i])
          { 
              System.out.println(d);
              System.out.println(0);
              break;
          }
      }
      

      【讨论】:

      • 当我使用上面指定的 break 时,它会退出 for 循环并终止程序。
      【解决方案3】:
      for (int i = 0; i < varArray.length; i++)
      {
          varArray[i] = rand.nextInt(1999) - 1000;
          System.out.println(varArray[i]);
      
          if (d == varArray[i])
          {
              System.out.println(d);      
              System.out.println(i + 1);
              break;
          }
          else if(d != varArray[i])
          { 
              System.out.println(d);
              System.out.println(0);
              break;
          }
      }
      

      当程序到达新添加的中断(在这个修改后的 sn-p 中)时,它将退出 for 循环。因此只执行一次。

      作者想编辑我的回答说:

      break 语句使代码跳出 for 循环。 我希望 for 循环语句完全执行,但 if-else 应该只执行一次。

      为此:

      Boolean didExecuteIfElse = false; for (int i = 0; i

      if (didExecuteIfElse == false) {
           if (d == varArray[i])
           {
              System.out.println(d);      
              System.out.println(i + 1);
           }
           else if(d != varArray[i])
           { 
              System.out.println(d);
              System.out.println(0);
           }
           didExecuteIfElse = true;
       }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-05
        • 1970-01-01
        • 2018-09-28
        • 2021-12-15
        • 2018-01-07
        • 2022-11-20
        • 1970-01-01
        相关资源
        最近更新 更多