不输入“for-loop”?

时间:2014-05-08 09:28:29

标签: java for-loop

这是我的代码:

private String SerialNo;
private String FirmVersion;


public String  GetSerial(int[] Data){

    System.out.println("GetSerial Debug : Data => "+Data);

    for (int i = 2;i==13;i++){
        System.out.println("In the FOR => ok ");
        if (i != 9){
            SerialNo = SerialNo + Data[i];  
        }
        if (i == 9){
            SerialNo = SerialNo + ".";
        }
    }

    System.out.println("SerialNo => "+ SerialNo);
    return SerialNo;
}

我的问题:我无法“进入”FOR

所以我的系统“在FOR => ok”中,从未显示,所有“动作”都没有完成。

我做错了什么?

ps:我确定我正在编译正确的文件。

9 个答案:

答案 0 :(得分:4)

永远不满足循环条件; i = 2在开始时,第一次检查将失败,因此所有循环都将失败。也许它应该改为:

for (int i = 2; i <= 13; ++i)

答案 1 :(得分:2)

for (int i = 2; i == 13; i++)更改为for (int i = 2; i <= 13; i++)

第二个参数是循环条件,它必须为true才能运行循环。

答案 2 :(得分:2)

检查你的陈述:

for (int i = 2; i==13; i++)

这实际上意味着以下内容:

  1. 2分配给i
  2. 检查i是否等于13。如果是,请继续循环,否则退出。
  3. 由于我在循环的第一次迭代中不是13,所以你永远不会输入它。我相信你想写

    for (int i = 2; i <= 13; i++)

    在这种情况下,您将从2到13迭代。 for循环的条件意味着&#34;我是否必须继续迭代?&#34;而不是&#34;我必须逃脱吗?&#34;

答案 3 :(得分:1)

你的情况在第一次迭代时变为假,所以控制永远不会进入循环体。

for循环语法:

for(initialization; condition; increment/ decrement){
  //your code
}

所以在这里你必须使用一些适当的条件进入循环。

例如:

for (int i = 0; i <= 13; i++) // for 0 to 13 increment

for (int i = 10; i >= 0; i--) // for 10 to 0 decrement

答案 4 :(得分:0)

for (int i = 2;i==13;i++){}

它进入但在第一次条件检查时失败,for-loop退出。

应该是 -

for (int i = 2;i<=13;i++)

答案 5 :(得分:0)

您已初始化i=2

 for (int i = 2;i==13;i++)

条件是i==13,它将成为false最终流程永远不会进入循环

尝试更改此代码

for (int i = 2;i<=13;i++)

答案 6 :(得分:0)

声明不好应该如下:

for(int i = 2; i&lt; 13; i ++)或for(int i = 2; i&lt; = 13; i ++)

答案 7 :(得分:0)

while loop循环的情况下,请参阅比较简单的for

考虑int i =2;值集和i == 13条件

  1. 你认为它会起作用吗?

    for (int i = 2;i==13;i++){
      //do something
    }
    
    Same to below *while loop* explanation
    
    int i = 2;
    while (i == 13) {
        //do something
        i++;
    }
    
  2. 我相信它会起作用

    for (int i = 2;i < 13;i++){
       //do something
    }
    
    Same to below **while loop**
    
    int i = 2;
    while (i < 13) {
        //do something
        i++;
    }
    

答案 8 :(得分:-1)

for循环的流程是:init statement-&gt;条件检查 - &gt;根据条件结果进入循环或外部。

这里,既然你说i = 2,那么i == 13就是假;它永远不会进入循环。 您可以在for循环中使用?:运算符,然后稍微修改if语句..