【问题标题】:FOR loop in C, condition partC中的FOR循环,条件部分
【发布时间】:2013-07-27 07:43:22
【问题描述】:

小问题只是为了澄清。

在 ZX-Spectrum BASIC 编译器中有 FOR TO STEP NEXT 循环,其中 TO 是无条件的:

10 FOR i=1 TO 5 STEP 1

我在 C 中尝试过类似的做法

for (i=1; i==5; i++); 

当然循环不起作用(== 在这里永远不会正确)......所以问题是:

在 C FOR 循环中,我们应该始终使用 CONDITION 来停止循环(我的意思是 FOR 语句括号中的 CONDITION),例如 FOR (i=0; i;i++);

【问题讨论】:

  • i=++?这是什么意思?
  • 应该是for (i = 1; i <= 5; i++)

标签: c basic zxspectrum


【解决方案1】:

正确翻译:

for i = 1 to 5 step 1

应该是:

for (i = 1; i <= 5, i++)

换句话说,循环运行五次,控制变量设置为12345

您可以使用其他变体,例如不同的条件运算符和不同的终止值,但显示的最匹配 BASIC 变体,同时在您的步骤可能不止一个的情况下仍能保护您(例如 for i = 1 to 4 step 2 )。

请记住,C 数组是从 0 开始的,因此,如果您使用 i 访问数组,它需要从 0 运行到 n-1,而不是从 1n .如果您只是想将变量用于其他目的(例如打印数字 1 到 5),1..n 变体是可以的。

【讨论】:

    【解决方案2】:

    你可以使用

    for (i = 1; i != 6; i++); 
    

    但最好使用i = 0 ... i &lt; 5,以防您在循环内更改i。它还可以传达您做得更好的地方。

    【讨论】:

    • 问题是 CONDITION 应该始终存在。在你的声明中循环运行 4 次是吗?
    • @llan 嗯...这是什么意思? is CONDITION is always should be there 你知道i!=5 是一个条件吗?
    • 是的,所以我们应该总是在那里放置一个条件。那是 Q... 不是我做的“任务”...
    • @Ilan 你可以only在那里放置一个条件...i==5是一个条件!
    • @Ilan, i==5 不是作业。 i=5 是,但前者绝对是相等的比较。
    【解决方案3】:

    在 for 循环中必须使用条件语句没有任何限制..
    您还可以在 for 循环的主体中使用此条件语句,如下所示......

    for(int i=0;;i++)
    {
          if(i>=5)
          {
             break;// to break the loop
          }
    }
    

    如果在 for 循环或 for 循环体中不使用条件语句,则循环进入无限状态,如下所示....

    for(int i=0;;i++)
    {
        //any statements
    }
    

    因为在 for 循环中,所有三个部分都是可选的(初始化、条件、incri/decri)

    int i=0
    for(;;)
    {
          if(i>=5)
          {
               //any statements
          }
    
          i++
    }
    

    【讨论】:

      【解决方案4】:

      循环条件不是必需的,您可以编写类似的循环

      for(int i=0;;i++)
      {
      //body
      }
      

      但请注意,循环体应包含一些 break 语句,否则循环执行无限时间

      【讨论】:

        【解决方案5】:

        您的代码中有两个问题,您不应该使用 ;在你的循环头之后,你可以像这样在你的条件部分使用

        for(int i=1; i<=5; i++){}
        

        所以它应该是一个条件,但你不必使用不等式,你可以使用任何其他条件,但它应该完成一段时间

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-20
          • 1970-01-01
          • 2013-05-27
          • 1970-01-01
          • 2011-12-17
          • 2015-07-23
          相关资源
          最近更新 更多