5. Estructura del bucle (bucle while, bucle for, bucle do while, interrupción y continuación, instrucción goto)

1.mientras bucle

Formato:

while(条件表达式){
    
    
	代码段1;
}

Paso 1: si se establece la expresión condicional (no 0), ejecute el segmento de código 1 (excluyendo la interrupción y otros factores para saltar directamente del bucle) y luego juzgue
la expresión condicional. Si se establece, repita el paso 1
hasta que se establezca la expresión condicional. la expresión no está establecida (es 0), salga del ciclo while


Ejemplo 1: use un bucle while para imprimir del 1 al 10

//打印1-10
int main() {
    
    
	int i = 1;
	while (i<=10)
	{
    
    
		printf("%d\n", i);
		i++;
	}
	return 0;
}



Ejemplo 2: Introduzca un número entero positivo e imprima el número en orden inverso
. Idea:
Paso 1:
Obtenga el dígito más bajo n%10 de n.
Por ejemplo: 2345%10=5.
Paso 2:
Retire el dígito más bajo n/10 de n
. Por ejemplo: 2345/10=234.
Repita los pasos 1 y 2 hasta n=0 para obtener una cadena de números enteros en orden inverso.

int main() {
    
    
	int i = 0;
	scanf("%d",&i);
	while (i)//等同于 i != 0 的效果
	{
    
    
		int a = i % 10;
		printf("%d", a);
		i /= 10;
	}
	return 0;
}



2.para bucle

Formato:

for(表达式1;表达式2;表达式3){
    
    
	代码段;
}

Expresión 1 Inicialización de variables de bucle
Expresión 2 Juicio condicional del final del bucle
Expresión 3 Ajuste de variables de bucle


Ejemplo 1: use el bucle for para imprimir del 1 al 10

int main() {
    
    
	for (int i = 1; i <= 10; i++){
    
    
		printf(" %d", i);
	}
	return 0;
}



Ejemplo 2: Introduzca un número entero positivo e imprima el número en orden inverso
. Idea:
Paso 1:
Obtenga el dígito más bajo n%10 de n.
Por ejemplo: 2345%10=5.
Paso 2:
Retire el dígito más bajo n/10 de n
. Por ejemplo: 2345/10=234.
Repita los pasos 1 y 2 hasta n=0 para obtener una cadena de números enteros en orden inverso.

//输入一个正整数,逆序打印正整数
int main() {
    
    
	int i = 0;
	for (scanf("%d",&i); i!=0; i/=10) {
    
    
		int a = i % 10;
		printf("%d", a);
	}
	return 0;
}

Ejemplo 3: Calcular la suma de números múltiplos de 3 entre 1 y 100

int main() {
    
    
	int sum = 0;
	for (int i = 1; i <= 100; i++){
    
    
		if (i % 3 == 0) {
    
    
			sum += i;
		}
	}
	printf("%d", sum);
	return 0;
}

Resultado de salida: 1683

3. hacer bucle while

La declaración do while es la menos utilizada entre las declaraciones de bucle.

Formato:

do{
    
    
	语句1;
}while(条件表达式);

hacer while es ejecutar primero la instrucción 1 dentro del bucle (Por lo tanto, las declaraciones en el cuerpo del bucle se ejecutarán al menos una vez en el bucle do while.)
y luego comience a juzgar la expresión condicional de while. Si es verdadera, ejecute la declaración 1; si no es verdadera, salga del ciclo.


Ejemplo 1: utilice el bucle do while para imprimir del 1 al 10

int main() {
    
    
	int i = 1;
	do{
    
    
		printf("%d",i);
		i++;
	} while (i<=10);
}

Ejemplo 2: Ingrese un número entero positivo y calcule la cantidad de dígitos que tiene este número entero.

int main() {
    
    
	int i = 0;
	int count = 0;
	scanf("%d", &i);
	do{
    
    
		i /= 10;
		count++;
	} while (i!=0);
	printf("%d", count);
}

4.romper y continuar

La función de interrupción termina directamente el bucle (más precisamente, es la primera capa de la estructura del bucle fuera de la interrupción). La función
de la instrucción del bucle de salto continúa es omitir este bucle (es decir, ignorar directamente todos los códigos a continuación en continuar en el cuerpo del bucle. Vuelva a ingresar directamente la parte de juicio condicional del bucle)

4.1 romper y continuar mientras

Ejemplo de interrupción
: utilice un bucle while para imprimir del 1 al 10. Si encuentra 5, deje de imprimir inmediatamente.

//break
int main() {
    
    
	int i = 1;
	while (i <= 10)
	{
    
    
		if (i == 5) {
    
    
			break;
		}
		printf("%d ", i);
		i++;
	}
	return 0;
}

continúe con
el ejemplo: use el bucle while para imprimir todos los números del 1 al 10 excepto el 5

//continue
int main() {
    
    
	int i = 1;
	while (i<=10)
	{
    
    
		if (i == 5) {
    
    
			i++;
			continue;
		}
		printf("%d ", i);
		i++;
	}
	return 0;
}

4.2 romper y continuar por

Ejemplo de interrupción
: use un bucle for para imprimir del 1 al 10. Si encuentra 5, dejará de imprimir inmediatamente.

//break
int main() {
    
    
	for (int i = 1; i <= 10; i++)
	{
    
    
		if (i == 5) {
    
    
			break;
		}
		printf("%d ", i);
	}
	return 0;
}

continúe con
el ejemplo: use un bucle for para imprimir todos los números del 1 al 10 excepto el 5

//continue
int main() {
    
    
	for (int i = 1; i <= 10; i++)
	{
    
    
		if (i == 5) {
    
    
			continue;
		}
		printf("%d ", i);
	}
	return 0;
}

4.2 romper y continuar en hacer mientras

Es básicamente lo mismo que el uso de while.
De hecho, básicamente no hay diferencia en el uso de break y continue entre las tres declaraciones de bucle de while, for y do while. Si quiero decir qué es diferente,
puedo Solo digo que la estructura del bucle de for y while es ligeramente diferente, lo que no afecta la interrupción y la continuación. Cómo usar continuar

5.ir a declaración

Formato:

goto 跳转标识;
.....
.....
跳转标识:

La declaración goto y la etiqueta de salto son una sintaxis especial en lenguaje C.
Función: la declaración goto puede saltar a la etiqueta de salto establecida dentro de la misma función.

Escenarios adecuados:
declaraciones de bucle anidado de varios niveles. Si desea utilizar break para finalizar el bucle, pero break solo puede saltar fuera del bucle externo . Si el anidamiento es profundo, será muy problemático
. En realidad, Goto rara vez se usa en programas Pero en una declaración de bucle anidado de múltiples capas, si desea salir del bucle, usar goto es una buena opción.

	int count = 0;
	for (int i = 1; i < 10; i++)
	{
    
    
		for (int j = 1; j < 10; j++)
		{
    
    
			goto outside;
		}
	}

outside:
	printf("goto跳出循环");

Si desea utilizar break para saltar de un bucle, debe escribir un break en el cuerpo de cada bucle.
Aquí, solo se utilizan dos capas, por lo que no parece obvio. Si el número de capas anidadas es enorme, necesitará Para escribir muchos saltos para saltar completamente del bucle,
Goto solo necesita estar en Marque la capa más externa y escriba la marca de salto Goto en el cuerpo del bucle más interno para saltar del bucle.

Supongo que te gusta

Origin blog.csdn.net/qq_45657848/article/details/131890755
Recomendado
Clasificación