Structure de boucle
1. while boucle
Format:
while(条件表达式){
代码段1;
}
Étape 1 : Si l'expression conditionnelle est établie (et non 0), exécutez le segment de code 1 (à l'exclusion de la rupture et d'autres facteurs pour sortir directement de la boucle), puis jugez
l'expression conditionnelle. Si elle est établie, répétez l'étape 1
jusqu'à ce que l'expression conditionnelle soit établie. l'expression n'est pas établie (est 0), quittez la boucle while
Exemple 1 : utilisez une boucle while pour imprimer 1-10
//打印1-10
int main() {
int i = 1;
while (i<=10)
{
printf("%d\n", i);
i++;
}
return 0;
}
Exemple 2 : saisissez un entier positif et imprimez le nombre dans l'ordre inverse
. Idée :
étape 1 :
obtenez le chiffre n%10 le plus bas de n.
Par exemple : 2345%10=5.
Étape 2 :
supprimez le chiffre n/10 le plus bas de n. n
. Par exemple : 2345/10 = 234.
Répétez les étapes 1 et 2 jusqu'à ce que n = 0 pour obtenir une chaîne d'entiers dans l'ordre inverse.
int main() {
int i = 0;
scanf("%d",&i);
while (i)//等同于 i != 0 的效果
{
int a = i % 10;
printf("%d", a);
i /= 10;
}
return 0;
}
2.pour la boucle
Format:
for(表达式1;表达式2;表达式3){
代码段;
}
Expression 1 Initialisation des variables de boucle
Expression 2 Jugement conditionnel de fin de boucle
Expression 3 Ajustement des variables de boucle
Exemple 1 : utilisez la boucle for pour imprimer 1 à 10
int main() {
for (int i = 1; i <= 10; i++){
printf(" %d", i);
}
return 0;
}
Exemple 2 : saisissez un entier positif et imprimez le nombre dans l'ordre inverse
. Idée :
étape 1 :
obtenez le chiffre n%10 le plus bas de n.
Par exemple : 2345%10=5.
Étape 2 :
supprimez le chiffre n/10 le plus bas de n. n
. Par exemple : 2345/10 = 234.
Répétez les étapes 1 et 2 jusqu'à ce que n = 0 pour obtenir une chaîne d'entiers dans l'ordre inverse.
//输入一个正整数,逆序打印正整数
int main() {
int i = 0;
for (scanf("%d",&i); i!=0; i/=10) {
int a = i % 10;
printf("%d", a);
}
return 0;
}
Exemple 3 : Calculer la somme de nombres multiples de 3 compris entre 1 et 100
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++){
if (i % 3 == 0) {
sum += i;
}
}
printf("%d", sum);
return 0;
}
Résultat de sortie : 1683
3. faire une boucle while
L'instruction do while est la moins utilisée parmi les instructions de boucle.
Format:
do{
语句1;
}while(条件表达式);
faire while consiste à exécuter d'abord l'instruction 1 à l'intérieur de la boucle (Par conséquent, les instructions du corps de la boucle seront exécutées au moins une fois dans la boucle do while.)
, puis commencez à juger l'expression conditionnelle de while. Si c'est vrai, exécutez l'instruction 1 ; si ce n'est pas vrai, quittez la boucle.
Exemple 1 : utilisez la boucle do while pour imprimer 1-10
int main() {
int i = 1;
do{
printf("%d",i);
i++;
} while (i<=10);
}
Exemple 2 : saisissez un entier positif et calculez le nombre de chiffres de cet entier.
int main() {
int i = 0;
int count = 0;
scanf("%d", &i);
do{
i /= 10;
count++;
} while (i!=0);
printf("%d", count);
}
4.break et continuer
La fonction break termine directement la boucle (plus précisément, il s'agit de la première couche de structure de boucle en dehors de break). La fonction de l'instruction de boucle de saut
continue est de sauter cette boucle (c'est-à-dire d'ignorer directement tous les codes ci-dessous, continuer dans le corps de la boucle. Ressaisissez directement la partie jugement conditionnel de la boucle)
4.1 faire une pause et continuer pendant que
Exemple de rupture
: utilisez une boucle while pour imprimer 1 à 10. Si 5 est rencontré, arrêtez immédiatement l'impression.
//break
int main() {
int i = 1;
while (i <= 10)
{
if (i == 5) {
break;
}
printf("%d ", i);
i++;
}
return 0;
}
continuer
l'exemple : utilisez la boucle while pour imprimer tous les nombres de 1 à 10 sauf 5
//continue
int main() {
int i = 1;
while (i<=10)
{
if (i == 5) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
4.2 faire une pause et continuer pendant
Exemple de cassure
: utilisez une boucle for pour imprimer 1 à 10. S'il rencontre 5, l'impression cessera immédiatement.
//break
int main() {
for (int i = 1; i <= 10; i++)
{
if (i == 5) {
break;
}
printf("%d ", i);
}
return 0;
}
Continuer
l'exemple : utilisez une boucle for pour imprimer tous les nombres de 1 à 10 sauf 5.
//continue
int main() {
for (int i = 1; i <= 10; i++)
{
if (i == 5) {
continue;
}
printf("%d ", i);
}
return 0;
}
4.2 faire une pause et continuer à faire pendant
C'est fondamentalement la même chose que l'utilisation de while.
En fait, il n'y a fondamentalement aucune différence dans l'utilisation de break et continue entre les trois instructions de boucle while, for et do while. Si je veux dire ce qui est différent, je
peux disons seulement que la structure des boucles de for et while est légèrement différente, ce qui n'affecte pas break et continue.
5. déclaration aller à
Format:
goto 跳转标识;
.....
.....
跳转标识:
L'instruction goto et l'étiquette de saut sont une syntaxe spéciale en langage C.
Fonction : L'instruction goto peut accéder à l'étiquette de saut définie dans la même fonction.
Scénarios appropriés :
Instructions de boucle imbriquées à plusieurs niveaux. Si vous souhaitez utiliser break pour terminer la boucle, mais que break ne peut sortir que de la boucle externe . Si l'imbrication est profonde, ce sera très gênant
. Goto est en fait rarement utilisé dans Mais dans une instruction de boucle imbriquée multicouche, si vous souhaitez sortir de la boucle, utiliser goto est un bon choix.
int count = 0;
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
goto outside;
}
}
outside:
printf("goto跳出循环");
Si vous souhaitez utiliser break pour sortir d'une boucle, vous devez écrire un break dans chaque corps de boucle.
Ici, seuls deux calques sont utilisés, cela ne semble donc pas évident. Si le nombre de calques imbriqués est énorme, vous aurez besoin pour écrire de nombreux breaks pour sortir complètement de la boucle.
Goto n'a besoin que d'être dans Mark la couche la plus externe et d'écrire la marque de saut goto dans le corps de la boucle le plus interne pour sortir de la boucle.