【问题标题】:Doesn't enter in the "for-loop"?不进入“for-loop”?
【发布时间】:2014-05-08 09:28:28
【问题描述】:

这是我的代码:

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:我确定我正在编译正确的文件。

【问题讨论】:

  • 你初始化i=2,说它必须等于13才能进入循环。所以你当然不会进入循环。
  • 好的,对不起,我认为第二个参数是退出条件,但我认为我只是表达错误。
  • 不,这是enter and stay in loop while... 条件。

标签: java for-loop


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    检查你的 for 语句:

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

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

    1. 2 分配给i
    2. 检查i是否等于13。如果是,则继续循环,否则退出。

    由于 i 在循环的第一次迭代中不是 13,因此您永远不会输入它。我相信你想写

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

    在这种情况下,您将从 2 迭代到 13(含)。 for 循环的条件意味着“我必须保持迭代吗?”而不是“我必须逃跑吗?”

    【讨论】:

    • 感谢您的澄清^^
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      您的条件在第一次迭代时变为错误,因此控制永远不会进入循环体。

      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 &gt;= 0; i--) // for 10 to 0 decrement

      【讨论】:

        【解决方案5】:
        for (int i = 2;i==13;i++){}
        

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

        应该是——

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

        【讨论】:

          【解决方案6】:

          你已经初始化i=2

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

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

          尝试像这样更改代码

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

          【讨论】:

            【解决方案7】:

            陈述不好应该像下面这样:

            for (int i = 2; i

            【讨论】:

              【解决方案8】:

              在您的 for 循环中查看比较简单的 while loop

              考虑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++;
                }
                

              【讨论】:

                【解决方案9】:

                for循环的流程是:init语句->条件检查->根据条件结果进入循环内部或外部。

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

                【讨论】:

                • 你有时间写“你有”而不是“uv”还是很着急?
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-09-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-12-21
                相关资源
                最近更新 更多