for Deyim (C)

deyimi, for bir deyimini veya bileşik deyimini belirtilen sayıda yinelemenize olanak tanır. bir deyiminin for gövdesi, isteğe bağlı bir koşul false olana kadar sıfır veya daha fazla kez yürütülür. deyiminin for yürütülmesi sırasında değerleri başlatmak ve değiştirmek için deyimi içindeki for isteğe bağlı ifadeleri kullanabilirsiniz.

Sözdizimi

iteration-statement:
  for ( init-expression opt;cond-expressionopt opt;loop-expression)statement

Bir for deyiminin yürütülmesi aşağıdaki gibi devam eder:

  1. init-expressionvarsa, değerlendirilir. Döngü için başlatmayı belirtir. türüyle init-expressionilgili bir kısıtlama yoktur.

  2. cond-expressionvarsa, değerlendirilir. Bu ifade aritmetik veya işaretçi türüne sahip olmalıdır. Her yinelemeden önce değerlendirilir. Üç sonuç mümkündür:

    • ise cond-expressiontrue (sıfır olmayan), statement yürütülür; varsa loop-expressiondeğerlendirilir. loop-expression her yinelemeden sonra değerlendirilir. Türüyle ilgili bir kısıtlama yoktur. Yan etkiler sırayla yürütülür. İşlem daha sonra değerlendirmesiyle cond-expressionyeniden başlar.

    • Atlanırsa cond-expression true cond-expression olarak kabul edilir ve yürütme tam olarak önceki paragrafta açıklandığı gibi devam eder. for Bağımsız değişkeni olmayan bir cond-expression deyim yalnızca deyim gövdesindeki bir break veya return deyimi yürütülürken veya bir (deyim gövdesi dışındaki goto etiketli bir deyime) yürütülürse for sonlandırılır.

    • (0) ise cond-expressionfalse , deyiminin for yürütülmesi sonlandırılır ve denetim programdaki bir sonraki deyime geçer.

Deyim for gövdesindeki bir break, gotoveya return deyimi yürütülürken deyimi de sonlandırılır. continue Döngüdeki bir for deyiminin değerlendirilmesine neden olurloop-expression. Bir break deyimi bir for döngü loop-expression içinde yürütülürken değerlendirilmez veya yürütülemez. Bu deyim

for( ; ; )

, yalnızca bir , breakveya goto deyimiyle çıkabilen sonsuz bir döngü oluşturmanın özel yoludurreturn.

Örnek

Bu örnekte, for deyimi gösterilmektedir:

// c_for.c
int main()
{
   char* line = "H e  \tl\tlo World\0";
   int space = 0;
   int tab = 0;
   int i;
   int max = strlen(line);
   for (i = 0; i < max; i++ )
   {
      if ( line[i] == ' ' )
      {
          space++;
      }
      if ( line[i] == '\t' )
      {
          tab++;
      }
   }

   printf("Number of spaces: %i\n", space);
   printf("Number of tabs: %i\n", tab);
   return 0;
}

Çıktı

Number of spaces: 4
Number of tabs: 2

Ayrıca bkz.

Raporlar