Lenguaje C: estructura de selección (declaración de rama)

Tabla de contenido

1. Seleccionar estructura

2. Uso de estructuras de selección.

2.1 Estructura de selección de sucursal única

2.2 Estructura de selección de dos ramas

2.3 Declaración de selección de múltiples sucursales

2.3.1 Realizar la declaración de selección de múltiples ramas a través de else if

2.3.2 La declaración de cambio realiza una declaración de selección de múltiples ramas 

2.4 Declaraciones de rama anidadas


1. Seleccionar estructura

La estructura de selección se utiliza para juzgar una condición determinada y el siguiente proceso de ejecución está determinado por el resultado del juicio.

Las estructuras de selección comunes incluyen la estructura de selección de una sola rama, la estructura de selección de dos ramas, la estructura de selección de múltiples ramas y la estructura de ramas anidadas.

 

2. Uso de estructuras de selección.

2.1 Estructura de selección de sucursal única

Estructuras gramaticales

si (expresión)

        declaración;

 

Proceso de implementación

 

Ejemplo: comprobar si un número es par

#include <stdio.h>

int main()
{
	int input = 0;
	printf("请输入一个数");
	scanf("%d", &input);

	//判断输入的数是否为偶数
	if (input % 2 == 0)
	//若不加花括号则默认只执行if语句后面一条语句
	{
		printf("输入的数为偶数\n");
	}

	return 0;
}

2.2 Estructura de selección de dos ramas

 Estructuras gramaticales

if(expresión)
  declaración 1;
else
  declaración 2;

 

 Proceso de implementación

 

 

Ejemplo: determinar si un número es par o impar

#include <stdio.h>

int main()
{
	int input = 0;
	printf("请输入一个数");
	scanf("%d", &input);

	//判断输入的数是否为偶数
	if (input % 2 == 0)
	{
		printf("输入的数为偶数\n");
	}
	else
	{
		printf("输入的数为奇数\n");
	}
	return 0;
}

Nota:

Declaraciones if y if else, {} no se pueden escribir detrás, y solo se ejecutará la declaración posterior a if else en este momento

	//代码1
	if (condition)
		return x;
	return y;

	//代码2
	if (condition)
	{
		return x;
	}
	else
	{
		return y;
	}

Los resultados de ejecución del código 1 y el código 2 son los mismos, por el contrario, la lógica del código 2 es más clara y menos propensa a errores. 

 {} puede ejecutar varias declaraciones en el bloque de código y la lógica del código es más clara. Se recomienda agregar {} cuando se usa

2.3 Declaración de selección de múltiples sucursales

2.3.1 Realizar la declaración de selección de múltiples ramas a través de else if

Estructuras gramaticales

 if (expresión 1)
  declaración 1;
else if (expresión 2)
  declaración 2;

de lo contrario si (expresión3)

  declaración 3;
de lo contrario,
  declaración 4;

Proceso de implementación

Ejemplo: determinar si un número es positivo, negativo o 0

#include <stdio.h>

int main()
{
	int num = 0;
	printf("请输入一个数");
	scanf("%d", &num);

	if (num > 0)
	{
		printf("输入的数为正数\n");
	}
	else if (num < 0)
	{
		printf("输入的数为负数\n");
	}
	else
	{
		printf("输入的数为0\n");
	}

	return 0;
}

Nota:

1. La estructura de selección coincide de arriba a abajo. Una vez que se cumple una determinada condición, finaliza toda la declaración condicional.

Incluso si la condición se puede cumplir más adelante, no se volverá a ejecutar .

2. No puedes escribir else después de usar if else if

2.3.2 La declaración de cambio realiza una declaración de selección de múltiples ramas 

 La declaración de cambio se usa a menudo en situaciones de múltiples ramas.

Cuando hay muchas ramas, la forma de usar la declaración else if es más complicada. En este momento, podemos usar la declaración switch para lograr

Estructuras gramaticales

cambiar(expresión entera){

        caso expresión constante 1:

                Declaración 1;

                Declaración 2;

                 ...

                romper;

        caso constante expresión 2:

                Declaración 1;

                ...

                romper;

        caso expresión constante 3:

                declaración 1

                ...

                romper;

        por defecto:

                declaración predeterminada

                romper;

}

Después de calcular el valor de la expresión entera, compare el valor obtenido con el valor de la expresión constante después de cada caso uno por uno. Cuando el valor de la expresión es igual al valor de una determinada expresión constante, se ejecuta la siguiente declaración. Hasta que se encuentre una declaración de ruptura . Si el valor de la expresión es diferente de las expresiones constantes después de todos los casos, se ejecuta la declaración después del valor predeterminado.

(el valor predeterminado es equivalente a otra cosa, si no cumple con todas las condiciones anteriores, ejecute el valor predeterminado)

Ejemplo 1:

#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);

	switch (day)
	{
		//若不加break,则会向下执行后面的语句,直到遇见break
	case 1:
		printf("星期一\n");
	case 2:
		printf("星期二\n");
	case 3:
		printf("星期三\n");
	case 4:
		printf("星期四\n");
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
	case 7:
		printf("星期天");
	default:
		printf("输入错误!\n");
	}

	return 0;
}

resultado de la operación

 

 Ejemplo 2:

#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);

	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:;
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("周末\n");
		break;
	default:
		printf("输入错误!\n");
		break;
	}

	return 0;
}

Nota: 

1. La declaración de cambio es diferente de la declaración if: solo puede juzgar si el valor de la expresión es igual a la constante especificada, mientras que if puede calcular y juzgar varias expresiones.

2. La declaración de cambio debe ir seguida de una expresión entera

3. Puede haber cualquier número de declaraciones de caso en un interruptor, y el caso debe ir seguido de una constante

Cuarto, el valor predeterminado se puede omitir

5. El orden de caso y incumplimiento se puede revertir, y se debe prestar atención a la siguiente declaración de interrupción cuando se invierte.

6. Se recomienda agregar una declaración de interrupción después de la última declaración de caso para evitar olvidar agregar una declaración de interrupción después de la última declaración de caso al agregar una nueva declaración de caso.

 

2.4 Declaraciones de rama anidadas

Tanto las declaraciones de cambio como las declaraciones if-else se pueden anidar 

Proceso de implementación

Ejemplo 1:

#include <stdio.h>

int main()
{
	double score = 0.0;
	printf("请输入分数");
	scanf("%d", &score);

	if (score >= 0.0 && score <= 100)
	{
		if (score >= 85)
		{
			printf("优秀\n");
		}
		else if (score >= 75)
		{
			printf("良好\n");
		}
		else if (score >= 60)
		{
			printf("及格\n");
		}
		else
		{
			printf("不及格\n");
		}
	}
	else
	{
		printf("输入错误!\n");
	}

	return 0;
}

Ejemplo 2:

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 5;
	if (a > 0)
		if (b > 0)
			printf("b = %d", b);
	else
			printf("a = %d", a);
	return 0;
}

resultado de la operación

 

 

 Nota: El lenguaje C estipula el principio de coincidencia más cercano de if y else, es decir, else se empareja con el if no emparejado más cercano encima de él , independientemente del formato de escritura.

Agregue {} después de la declaración de ejecución y la coincidencia if else mantiene la misma sangría, lo que puede hacer que la lógica sea más clara y menos propensa a errores.

 

Ejemplo 3:

#include <stdio.h>

int main()
{
	int a = 2;
	int b = 3;

	switch (a)
	{
	case 1:
		printf("a = 1\n");
		break;
	case 2:
		printf("a = 2\n");

		switch (b)
		{
		case 1:
			printf("b = 1\n");
			break;
		default:
			printf("b != 1\n");
			break;
		}

		break;
	default:
		break;
	}

	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/2301_76161469/article/details/130301975
Recomendado
Clasificación