如何在循环外使用值

时间:2011-04-12 02:45:51

标签: java for-loop if-statement

在下面的代码中,我需要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);
    }
}

需要帮助。一直在寻找几个小时

3 个答案:

答案 0 :(得分:0)

if(d==varArray[i])

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

d是变量吗?

答案 1 :(得分:0)

你可以用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;
    }
}

答案 2 :(得分:0)

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

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

作者想要编辑我的回答说:

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

要做到这一点:

Boolean didExecuteIfElse = false; for(int i = 0; i&lt; varArray.length; i ++) {     varArray [i] = rand.nextInt(1999) - 1000;     的System.out.println(varArray [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;
 }
}