Maison  >  Article  >  développement back-end  >  A quoi sert for en langage C ?

A quoi sert for en langage C ?

coldplay.xixi
coldplay.xixioriginal
2020-06-24 14:07:599819parcourir

A quoi sert for en langage C ?

L'utilisation de for en langage C est :

La forme générale de l'instruction de boucle for est :

for (表达式1; 表达式2; 表达式3)
{
        语句;
}

Premier Il faut surtout souligner deux choses :

1) L'expression 1, l'expression 2 et l'expression 3 sont séparées par des points-virgules ; ne les écrivez jamais sous forme de virgules ;

2) N'ajoutez jamais de point-virgule après pour (expression 1 ; expression 2 ; expression 3) De nombreux novices feront cette erreur - ils ne peuvent s'empêcher d'ajouter un point-virgule après.

Parce que la boucle for ne peut contrôler qu'une seule instruction après elle, et en langage C, le point-virgule est également une instruction - une instruction vide. Ainsi, si vous ajoutez un point-virgule à la fin, la boucle for ne peut contrôler que ce point-virgule, et les instructions entre accolades ci-dessous n'appartiennent pas à la boucle for.

Jetons un coup d'œil à son processus d'exécution :

  • Résoudre l'expression 1.

  • Résoudre l'expression 2. Si sa valeur est vraie, exécutez l'instruction intégrée spécifiée dans l'instruction for, puis exécutez l'étape 3 si la valeur de l'expression 2 est fausse, terminez la boucle et passez à l'étape 5 ;

  • Résoudre l'expression 3.

  • Retournez à l'étape 2 ci-dessus et continuez.

  • La boucle se termine et les instructions situées sous l'instruction for sont exécutées.

Il ressort de ce processus d'exécution que "l'expression 1" n'est exécutée qu'une seule fois et que la boucle est entre "l'expression 2", "l'expression 3" et "l'instruction intégrée" portée entre les deux.

La forme la plus simple de l'instruction for est :

for (循环变量赋初值; 循环条件; 循环变量增值)
{
    语句;
}

Laissez-moi écrire un programme pour que vous trouviez la somme de 1+2+3+4+…+100.

# include <stdio.h>
int main(void)
{
    int i;
    int sum = 0;  //sum的英文意思是“总和”
    for (i=1; i<=100; ++i)  //++是自加的意思, ++i相当于i = i + 1
    {
        sum = sum + i;  /*等价于sum += i;但是不建议这么写, 因为sum = sum + i看起来更清楚、更舒服*/
    }
    printf("sum = %d\n", sum);
    return 0;
}

Le résultat de sortie est :

sum = 5050

La fonction de ce programme est de trouver la somme de 1+2+3+4+…+100. , l'ajouter une fois nécessite une instruction. L'ajout de 100 fois donne 100 instructions. Ici, il est ajouté de 1 à 100. S'il est ajouté de 1 à 10 000, il faudra 10 000 instructions. Mais avoir une boucle est très pratique. Vous pouvez en ajouter autant que vous le souhaitez, il suffit de modifier un paramètre. La circulation est donc importante.

Voyons comment le programme ci-dessus est exécuté en fonction du processus d'exécution.

1. Définissez d’abord une variable de boucle i. Vous n'avez pas besoin de lui attribuer une valeur initiale lors de sa définition. Vous pouvez également lui attribuer une valeur initiale dans la boucle for. Mais comme mentionné précédemment, il est préférable d'initialiser la variable lorsque vous la définissez. Si la valeur est incertaine, initialisez-la à 0. Par conséquent, dans le programme, vous pouvez également attribuer une valeur initiale à i lors de sa définition. Ensuite, "l'expression 1" dans la boucle for peut être omise, mais le point-virgule ne peut pas être omis.

Dans ce cas, lors de l'exécution, sautez l'étape 1 et passez directement à l'étape 2 en laissant tout le reste inchangé. Par conséquent, le programme peut également être écrit comme suit :

# include <stdio.h>
int main(void)
{
    int i = 1;
    int sum = 0;
    for (; i<=100; ++i)
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum);
    return 0;
}

Bien sûr, vous pouvez également ajouter l'expression 1, mais dans le pire des cas, vous devez réaffecter la valeur.

2. Définissez ensuite une somme variable pour stocker "sum", attribuez-lui une valeur initiale de 0, puis entrez la boucle for :

  • Résolvez d'abord l'expression. 1, c'est-à-dire attribuer une valeur initiale à la variable i, i=1 ; l'expression 1 n'est exécutée que cette fois, et ne sera pas exécutée à nouveau.

  • Résolvez ensuite l'expression 2. Si 1<=100 est vrai, exécutez l'instruction en ligne dans la boucle for, c'est-à-dire sum=0+1.

  • Ensuite l'étape 3 est effectuée, la variable i augmente de 1, c'est-à-dire que la variable i passe de 1 à 2.

  • Résolvez ensuite l'expression 2, si 2<=100 est vrai, puis exécutez l'instruction intégrée dans la boucle for, sum=0+1+2.

  • Ensuite, effectuez l'étape 3, la variable i augmente de 1, c'est-à-dire que la variable i passe de 2 à 3.

  • Ensuite, résolvez l'expression 2, c'est-à-dire si 3<=100 est vrai, puis exécutez l'instruction intégrée dans la boucle for, sum=0+1+2+3.

  • ......

Continuez simplement à boucler comme ça jusqu'à ce que ++i soit égal à 100, résolvez l'expression 2, c'est-à-dire 100< ;= 100 est établi, puis l'instruction intégrée dans la boucle for est exécutée, sum=0+1+2+3+…+100.

Ensuite, effectuez l'étape 3, la variable i augmente de 1, c'est-à-dire que la variable i passe de 100 à 101. Résolvez ensuite l'expression 2, c'est-à-dire que si 101<=100 n'est pas vrai, terminez la boucle et exécutez l'instruction sous la boucle for, qui est printf.

Ce qui précède est le processus d'exécution de ce programme. Concernant la question de normalisation du code des instructions for, il y a deux points que je souhaite souligner avec vous :

1) if, else, for, while et do ne peuvent contrôler qu'une seule instruction ultérieure si vous le souhaitez. contrôler plusieurs instructions doivent être placées entre accolades {}. Cependant, sur la base de la standardisation du code, {} doit être ajouté aux instructions d'exécution qui suivent if, else, for, while et quel que soit le nombre de lignes, même s'il n'y en a qu'une seule.

2) Les mots clés tels que if, for, while, etc. doivent laisser un espace puis suivre le crochet gauche ( (, pour mettre en surbrillance le mot-clé.

De plus, il existe une autre connaissance point à suivre dans le programme ci-dessus Laissez-moi vous dire : fonctionnellement parlant, for(i=1; i<=100;++i) peut être écrit comme for(i=1; i<101; ++i), et il est recommandé d'essayer d'utiliser cette méthode d'écriture, en d'autres termes, la condition de boucle de l'instruction de boucle. doit être écrit à moitié ouvert et à moitié fermé, qu'il s'agisse d'une boucle for ou d'une boucle while

.

for(i=1; i<101; ++i)实际上是 1≤i<101,是半开半闭的;而for(i=1; i<=100; ++i)实际上是 1≤i≤100,是全闭的。那么为什么建议使用半开半闭的呢?因为如果写成 i<=100 的话,那么每次判断的时候都要判断两次,即 i<100 和 i==100,而写成 i<101 的话每次只需要判断一次。

下面再给大家写一个程序,求 1 到 100 之间所有奇数的和。

# include <stdio.h>
int main(void)
{
    int i;
    int sum = 0 ;
    for (i=1; i<100; i+=2)  //i+=2;等价于i = i + 2;
    {
        sum = sum + i;
    }
    printf("sum = %d\n", sum);
    return 0;
}

输出结果是:

sum = 2500

推荐教程:《C视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn