Estructura de rama y estructura de bucle del lenguaje C de base cero

1. Estructura de sucursales

1.si declaración

declaración 2.if-else

3. Múltiples sentencias if-else

4. Declaraciones if-else anidadas

2. Estructura del ciclo

1. bucle while

2.bucle do-while

en bucle

Comparación de tres estructuras de bucle

Múltiples bucles en estructura de bucle

3. Declaración final

declaración 1.break

2. continuar declaración

4. Estructura de sucursales

1. declaración de cambio

Cinco, ir a declaración

6. Prueba de múltiples instancias

————————————————————————————————————————————
1. Estructura de la sucursal
1.
La estructura básica de la sentencia if:
La sentencia if juzga una condición. Cuando la condición es verdadera, {}la sentencia que se está ejecutando se ejecuta; de lo contrario, la sentencia no se ejecuta.
La sintaxis de la instrucción if es la siguiente:

if(表达式)
{
    
    
	执行代码块;
}

Nota: No agregue un punto y coma al final, y agregue directamente 2. instrucción if-elseif() después. La declaración if-else juzga una condición. Cuando la condición es verdadera, se realiza una operación, de lo contrario, se realiza otra operación diferente. La sintaxis de la instrucción if-else es la siguiente:{}


if(表达式)
{
    
    
	语句1}
else
{
    
    
	语句2}

Nota:
(1) ¡No hay punto y coma después de if()! Si accidentalmente agrega un punto y coma al final, habrá un error gramatical y el mensaje de error apuntará a else: ilegal else, no hay coincidencia if (2) Si solo hay
una oración después de if y else, es se puede quitar {}Cuando la declaración excede Cuando hay dos oraciones, se debe agregar {}. Agregar llaves puede indicar claramente el alcance del control de si o si no.
3. Múltiples sentencias if-else
Varias sentencias if-else juzgan el valor de la expresión a su vez.Cuando el valor de una expresión es verdadero, se ejecuta la operación correspondiente a la expresión, de lo contrario, se ejecuta la operación correspondiente a la otra.
El formato de sintaxis de múltiples sentencias if-else:

if(表达式1{
    
    
	语句1}
else if(表达式2{
    
    
	语句2}
……
else if(语句m)
{
    
    
	语句m;
}
else
{
    
    
	语句n;
}

Nota: Cuando una expresión es verdadera, otras declaraciones de la estructura de la rama no se ejecutarán hacia abajo.
4. Sentencias if-else anidadas
Por lo general, una sentencia if-else se coloca dentro de otra sentencia if-else para formar una sentencia if-else anidada.
El formato de sintaxis de las sentencias if-else anidadas:

if(表达式1{
    
    
	if(表达式2{
    
    
		语句2}
	else
	{
    
    
		语句3}
}
else
{
    
    
	语句4}

2. Estructura de bucle
En el lenguaje C, la ejecución repetida de una acción es lo que a menudo llamamos un bucle El lenguaje C proporciona instrucciones de bucle para lograr un procesamiento repetido. En lenguaje C, cada ciclo tiene una expresión de control, y cada vez que se ejecuta el cuerpo del ciclo, se evalúa la expresión de control y, si la expresión es distinta de cero, el ciclo continúa ejecutándose. Hay tres tipos de sentencias de bucle en lenguaje C, a saber, sentencia while, sentencia do y sentencia for. El ciclo while prueba la expresión de control antes de ejecutar el cuerpo del ciclo, el ciclo do prueba la expresión de control después de que se ejecuta el cuerpo del ciclo, y el ciclo for es muy adecuado para aquellos ciclos que especifican el número de iteraciones.
1. bucle while
El bucle while es adecuado para realizar una operación repetidamente si se cumple una determinada condición, por lo que la instrucción while es la más sencilla y fácil de usar.
El formato general de la instrucción while es el siguiente

while(表达式)
{
    
    
	循环体语句;
}

Función: cuando el valor de la expresión no es 0, ejecuta la instrucción del cuerpo del ciclo repetidamente.
Proceso de ejecución: primero calcule el valor de la expresión entre paréntesis, si el valor no es 0, luego continúe ejecutando la declaración del cuerpo del ciclo y luego juzgue la expresión. Este proceso continúa hasta que la expresión se evalúa como 0.
A continuación, mire una pregunta clásica usando un bucle while:
/*Program: use un bucle while para encontrar la suma de 10 enteros*/

#include<stdio.h>
int main(void)
{
    
    
	int i,number,sum;/*number用来暂存读入的整数,sum存储累加和*/
	sum=0;/*sum赋值为0*/
	i=1/*循环变量i赋值为1*/
	printf("请输入10个整数:\n");
	while(i<=10)   /*循环条件是i不大于10*/
	{
    
    
		scanf("%d",&number);/*读入一个整数存入number*/
		sum+=number;/*number累加到变量sum中*/
		i=i+1;/*循环变量i增加1,也可以写成i++*/
	}
	printf("累加和为:%d\n",sum);/*输出累加和*/
	return 0}

Nota:
(1) Dado que el número de punto flotante de la computadora es solo un valor aproximado, se puede obtener un valor inexacto al usar un número de punto flotante como variable de control de bucle, lo que puede conducir a un error en la prueba del condición de terminación del bucle, por lo que se debe utilizar un valor entero para controlar el bucle técnico.
(2) Aplicar sangría a la declaración interna controlada por el encabezado de la declaración de control y dejar líneas en blanco antes y después de la declaración de control, lo que puede hacer que el programa tenga un sentido de jerarquía bidimensional y mejorar en gran medida la legibilidad del programa.
(3) Si en el cuerpo del ciclo while no hay ninguna operación que finalmente cambie la condición a falsa, entonces el ciclo nunca terminará; este es el llamado ciclo infinito (es decir, un ciclo infinito).
2. El ciclo do-while
El ciclo do-while consiste en ejecutar primero la declaración en el ciclo y luego juzgar si la expresión en el ciclo while es verdadera, si es verdadera, continuar el ciclo, si es falsa, terminar el ciclo. bucle. Por lo tanto, el bucle do-while debe ejecutar la sentencia de bucle al menos una vez.
El formato general de una instrucción do-while es el siguiente:

do
{
    
    
	语句1}while(表达式);//切记,这里有分号。

Nota: cuando se usa la declaración do-while, se debe agregar un punto y coma después de los paréntesis de while.

3. bucle for
La sentencia de bucle for puede manejar todos los detalles del control de conteo.Es la sentencia de bucle más poderosa y la mejor manera de escribir muchos bucles.
El formato estándar de la instrucción for es el siguiente:

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

Proceso de ejecución:
(1) Ejecute la expresión 1, inicialice la variable de bucle y ejecútela solo una vez.
(2) Expresión de juicio 2, si su valor es verdadero (no 0), luego ejecute la declaración en el ciclo for y luego ejecute hacia abajo; si su valor es falso (0), luego finalice el ciclo.
(3) La última operación ejecutada en cada bucle. Establezca el tamaño de paso del bucle y cambie el valor de la variable de bucle, cambiando así la verdad o falsedad de la expresión 2.
(4) Cuando finaliza el bucle, el programa se ejecuta hacia abajo.
En la mayoría de los casos, la instrucción for anterior se puede expresar como la siguiente instrucción while

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

En el bucle for:
(1) la expresión 1 es una o más sentencias de asignación, que se utilizan para controlar el valor inicial de la variable; (
2) la expresión 2 es una expresión relacional, que decide cuándo salir del bucle;
(3) La expresión es el valor de paso de la variable de ciclo, que define cómo cambia la variable de ciclo después de cada ciclo.
(4) Estas tres partes están separadas por punto y coma, recuerde no escribir comas.
Precauciones para la declaración for:
(1) Las tres expresiones en el encabezado de la declaración for: inicialización, condición de continuación del bucle y operación de incremento pueden contener expresiones aritméticas.
Por ejemplo:

for(i=m+1;i<=4*n;i+=n/m)

(2) El incremento de la variable de control puede ser negativo, en cuyo caso se reduce el número de bucles.
Por ejemplo, la función del siguiente segmento de programa es "contar hacia atrás" la información

for(i=10;i>0;i=i-1)
{
    
    
	printf("%d ",i);
}

(3) Las tres expresiones en la instrucción for son opcionales. Si se omite la expresión 2, se supone que la condición de continuación del bucle es siempre cierta, lo que da como resultado un bucle infinito. Si la inicialización de la variable de control de bucle ya se ha realizado en otra parte del programa, se puede omitir la expresión 1. La expresión 3 también se puede omitir si el incremento de la variable de control del ciclo se realiza mediante la declaración en el cuerpo del ciclo for, o si no se requiere ningún incremento. La expresión de incremento en la declaración del ciclo for puede ser reemplazada por una sola declaración al final del cuerpo del ciclo.
(4) La Expresión 1 y la Expresión 3 pueden ser una expresión simple o varias expresiones separadas por comas

int sum,num;
for(sum=0,num=0;num<=3;num++,sum++)
{
    
    
	sum+=num;
	printf("num=%d,sum=%d\n",num,sum);
}

(5) Si el alcance del ciclo es más de una declaración, debe agregarse para {}formar una declaración compuesta, que es fácil de olvidar para los principiantes {}, lo que genera errores.
Por ejemplo:

for(i=1;i<=n;i++)
	scanf("%d",&number);
	sum+=number;

Entonces es equivalente al siguiente segmento de programa

for(i=1;i<=n;i++)
{
    
    
	scanf("%d",&number);
}
sum+=number;`

La sentencia sum+=number está fuera del cuerpo del ciclo.
(6)
Si accidentalmente agrega un punto y coma después de los paréntesis del bucle for, se creará una declaración vacía y el compilador pensará que el contenido del bucle es la declaración vacía.

for(i=1;i<=n;i++)
{
    
    
	scanf("%d",&number);
	sum+=number;
}

Esta declaración es equivalente a:

for(i=1;i<=m;i++)
{
    
    
	;
}
scanf("%d",&number);
sum+=number;

Esta declaración es interpretada por el compilador como un cuerpo de bucle, y el cuerpo de bucle entendido por el diseñador es entendido por el compilador como la declaración de seguimiento de la declaración de bucle.Después de que finaliza el bucle, solo se ejecuta una vez.
(7) Las variables de control de bucle, además de utilizarse para controlar el bucle, también pueden utilizarse en el cálculo del cuerpo del bucle. Sin embargo, es mejor no cambiar el valor de la variable de control de bucle en el bucle for, lo que puede causar algunos errores ocultos.

Los tres tipos de bucles en la estructura de bucles se comparan
while, do-while y for. Hay diferencias en los escenarios de uso específicos:
1. Es más adecuado usar el bucle for cuando se conoce el número de bucles.
2. Es es adecuado cuando no se conoce el número de bucles Use while o do-while
(1) Si es posible no hacer un bucle, considere usar un bucle while
(2) Si hay al menos un bucle, considere usar un bucle do- mientras bucle

Bucles múltiples de estructura de bucle
Los bucles múltiples son estructuras de bucle que aparecen en estructuras de bucle,
pero en el desarrollo real, se utilizan hasta tres capas de bucles múltiples

Debido a que cuantas más capas de bucles, mayor es el tiempo de ejecución, más complejo es el programa, por lo que se utilizan como máximo 2-3 capas de múltiples bucles. Además, también se pueden anidar diferentes bucles.

Durante la ejecución de varios bucles, el bucle exterior es el bucle principal y el bucle interior es el bucle secundario.

Una vez que se ejecuta el bucle principal, todos los subbucles se ejecutarán hasta que se salga del subbucle. El ciclo principal entra la próxima vez, y el ciclo secundario continúa ejecutándose...

#include<stdio.h>
int main(void)
{
    
    
	int i,j,k;
	for(i=1;i<5;i++)
	{
    
    
	//观察每行空格数量,补全循环条件
		for(j=1;j<5;j++)
		{
    
    
			printf(" ");//输出空格
		}
		for(k=0;k<2*i-1;k++)
		{
    
    
			printf("*");//每行输出*号
		}
		printf("\n");//每次循环之后换行,打印下一行
	}
	return 0;
}

3. Instrucción final
1. Instrucción break
La instrucción break se usa generalmente para salir del bucle o saltar antes de la instrucción switch. Ejecutar la instrucción break hará que el programa salte inmediatamente de estas instrucciones y pase a la siguiente instrucción inmediatamente posterior. .
Por ejemplo, vaya al patio de recreo para correr y planee correr 10 vueltas, pero durante la carrera, si no se siente bien, puede terminar la carrera antes y volver a descansar. La situación anterior se puede expresar como
lógica

for(i=1;i<=10;i++)
{
    
    
	if(感到身体不适)
	break;
}

breakPreste atención a los siguientes puntos cuando use declaraciones
1. En ausencia de una estructura de bucle, no se puede usar break en una sola declaración if-else.
2. En bucles múltiples, una declaración de interrupción solo puede saltar de un nivel de bucle y solo puede ser el bucle actual.

2. Instrucción de continuación
Utilice la instrucción de continuación para interrumpir la ejecución actual del cuerpo del bucle (es decir, omita la instrucción que no se ha ejecutado en el cuerpo del bucle) y comience una nueva ronda de bucle inmediatamente.
La diferencia entre la sentencia break y la sentencia continue es:
la sentencia break es saltar fuera del ciclo completo actual, y la sentencia continue es terminar este ciclo e iniciar el siguiente ciclo.

4. Estructura de rama
1. Sentencia de cambio
Cuando el problema necesita tratar con muchas ramas (generalmente más de 3), las sentencias de cambio se usan generalmente en lugar de sentencias condicionales para simplificar el diseño del programa. La declaración de cambio es como un interruptor multidireccional, que hace que el flujo de control del programa forme múltiples ramas y selecciona una o varias ramas para ejecutar de acuerdo con los diferentes valores de una expresión. La declaración de cambio en lenguaje C también se llama declaración de cambio.
El formato más común para una declaración de cambio:

switch(表达式)
{
    
    
	case 常量表达式1:语句序列1 break;
	case 常量表达式2:语句序列2 break;
	……
	case 常量表达式n:语句序列n break;
	default : 语句序列 n+1
}

Una sentencia switch tiende a ser más fácil de leer que una sentencia if de varias ramas. Además, la sentencia switch tiende a ejecutarse más rápido que la sentencia if, especialmente cuando hay muchas condiciones por determinar.
Nota:
(1) Los valores de cada expresión constante después del caso no pueden ser los mismos, de lo contrario ocurrirá un error
(2) Después del caso, si no hay interrupción, continuará ejecutándose hasta que se encuentre una interrupción antes saltando fuera de la declaración de cambio
(3) Después del cambio La declaración de expresión de solo puede ser de tipo entero o carácter.
(4) Después del caso, se permiten declaraciones múltiples sin {}encerrarlas
(5) El orden de cada caso y declaración predeterminada se puede cambiar sin afectar el resultado de la ejecución del programa.
(6) La declaración predeterminada se puede omitir.
La aplicación de interruptor y declaración if
calcula el día del año.

#include<stdio.h>
int main(void)
{
    
    
	int date=0;
	int year=2008;
	int month=8;
	int day=8;
	switch(month)
	{
    
    
		case 12 :date+=30;
		case 11 :date+=31;
		case 10 :date+=30
		case 9 :date+=31
		case 8 :date+=31
		case 7 :date+=30
		case 6 :date+=31
		case 5 :date+=30
		case 4 :date+=31
		case 3 :
		if(year%4==0&&year%100!=0||year%400==0)
		{
    
    
			date+=29;
		}
		else
		{
    
    
			date+=28;
		}
		case 2:date+=31;
		case 1:date+=day;
		printf("%d年%d月%d日是该年的第%d天“,year,month,day,date);
		break;
		default:
		printf("error");
		break;
	}
	return 0;
}

Cinco, sentencia goto
La sentencia goto en lenguaje C es una sentencia de bifurcación incondicional, y la sentencia goto puede saltar a cualquier sentencia etiquetada en la función. La sentencia goto es una sentencia antigua, la predecesora de la sentencia loop. En los primeros días del desarrollo de computadoras, los programas consistían en varias declaraciones + etiquetas de declaración + declaraciones de salto.
formato de instrucción goto

goto 语句标号;

Etiqueta de declaración: una etiqueta de declaración consta de un identificador más dos puntos, que identifica una ubicación específica en el programa y generalmente se coloca en el lado izquierdo de una declaración ejecutable.
Función: Convierte el programa a la posición especificada para continuar la ejecución.
¿Cómo implementa un bucle la sentencia goto? Tome la suma acumulativa de 1-100 como ejemplo:

sum=0,i=1;
loop:sum=sum+1;
i++;
if(i<=100)//如果i<=100,跳转到loop处,从而实现循环
	goto loop;
printf("%d\n",sum);

La declaración goto generalmente no se usa, principalmente porque destruirá la estructura del programa, no es fácil de leer y es fácil traer peligros ocultos. Pero cuando necesita salir de varios bucles o bucles que contienen sentencias de cambio, es más razonable usar la sentencia goto.

Lo anterior es la explicación de la estructura de rama y la estructura de bucle del lenguaje C. Espero que mi artículo pueda ayudarlo a usted que está aprendiendo el lenguaje C. Como dice el refrán, la práctica es el único criterio para probar la verdad, y espero que puedas intentar escribir algunos temas sobre la estructura de rama y la estructura de bucle por ti mismo para profundizar tu comprensión de este artículo. ¡Que todos aprendan algo! Espero que mis amigos que les gusto le presten atención y comenten mucho, gracias! ! !

Supongo que te gusta

Origin blog.csdn.net/z2004cx/article/details/128196808
Recomendado
Clasificación