这是我的代码:
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:我确定我正在编译正确的文件。
答案 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++)
这实际上意味着以下内容:
2
分配给i
i
是否等于13
。如果是,请继续循环,否则退出。由于我在循环的第一次迭代中不是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
条件
你认为它会起作用吗?
for (int i = 2;i==13;i++){
//do something
}
Same to below *while loop* explanation
int i = 2;
while (i == 13) {
//do something
i++;
}
我相信它会起作用
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语句..