[Lenguaje C elemental] Declaraciones, declaraciones bifurcadas, declaraciones if, declaraciones switch, bloques de código

1. ¿Qué es una declaración?

Oración: En lenguaje C, hay una; separada por una oración.
P.ej:

int a = 10;
printf("haha\n");
10;
'A';
 ; //空语句,啥都不执行

2. Declaración de sucursal (elegir estructura)

2.1 declaración de if y precauciones

Inserte la descripción de la imagen aquí

2.1.1 Estructura gramatical

1if (表达式)
{
    
    
	代码块;
}2//二选一
if (表达式)
{
    
    
	代码块1;//表达式为真
}
else
{
    
    
	代码块2;//表达式为假
}3//多分支 多选一   
if (表达式1)
{
    
    
	代码块1;
}
else if (表达式2)
{
    
    
	代码块2;
}
else
{
    
    
	代码块3;
}

Explicación:
1. Si la sentencia es una sentencia de bifurcación selectiva, siempre que se cumpla una condición, no se ejecutarán otras sentencias.
2. Después de que if () juzgue el resultado devuelto por la expresión en (). En lenguaje C, 0 es falso y no cero es verdadero.
3. La condición se juzga para evitar una escritura errónea como si (bandera = 6), que se puede escribir como si (6 == bandera).
3. Un {} es un bloque de código, intente usar {} para aclarar la lógica, para mostrar que es un bloque de código completo y no es fácil cometer errores. De lo contrario, puede suceder que la compilación falle o que el resultado de salida sea incorrecto. Tales como:
(1) La compilación falla
// error, la compilación falla

int main()
{
    
    
	if (a > 10)
		i++;
		j++;//error,编译不通过
	else
		j++;
	return 0;
}

// Escritura recomendada, con todo {}

int main()
{
    
    
	if (a > 10)
	{
    
    
		i++;
		j++
	}

	else
	{
    
    
		j++;
	}
	return 0;
}

(2) El problema de colgar else
// No sumar todo {}, hay un else colgando

int main()
{
    
    
	int a = 0;
	int b = 2;
	if (1 == a)
	if (2 == b)
		printf("hehe\n");
	else
		printf("haha\n");
	return 0;
}

Resultado:
Inserte la descripción de la imagen aquí
// Escritura recomendada, agregar todo {}

int main()
{
    
    
	int a = 0;
	int b = 2;
	if (1 == a)
	{
    
    
		if (2 == b)
		{
    
    
			printf("hehe\n");
		}
	}
	else
	{
    
    
		printf("haha\n");
	}
	return 0;
}

Resultado: 4.
Inserte la descripción de la imagen aquí
Ejemplo de declaración if de varias ramas:

int main()
{
    
    
	int age = 0;
	scanf("%d", &age);
	if (age<18)
	{
    
    
		printf("少年\n");
	}
	else if (age >= 18 && age<30)
	{
    
    
		printf("青年\n");
	}
	else if (age >= 30 && age<50)
	{
    
    
		printf("中年\n");
	
	}
	else if (age >= 50 && age<80)
	{
    
    
		printf("老年\n");
	}
	else
	{
    
    
		printf("长命百岁\n");
	}

	system("pause");
	return 0;
}

2.1.2 Otros colgando

#include <stdio.h>
int main()
{
    
    
    int a = 1;
    int b = 2;
    if(a == 1)
        if(b == 2)
            printf("hehe\n");
    else//悬空else
        printf("haha\n");
    return 0; 
}
输出:hehe

Nota:
1. El else aquí es el colgando else.
2. Cuando la instrucción if else está anidada, else adopta el principio más cercano para coincidir con el if más cercano.
3. Al escribir el código, intente traer {} para evitar la aparición de colgando else, lo que puede causar que el resultado de salida sea incorrecto. Para un ejemplo, consulte 2.1.1 (2) problema colgando else.

2.2 cambio de declaración y asuntos que requieren atención

2.2.1 Estructura gramatical

//switch语句是C语言中经典多分支语句
switch (整型表达式)
	{
    
    
	case 常量表达式1:
		语句;
	case 常量表达式2:
		语句;
		...
	case 常量表达式n:
	default:
		语句;
	}

Explicación:
1. La declaración de cambio es un salto coincidente, el caso solo tiene una función de juicio, sin función de ramificación; donde el
caso coincide, salte a qué posición, comenzando desde la posición coincidente y luego ejecutada; la
declaración del caso se puede ramificar después se agrega el descanso.
1. Las expresiones enteras incluyen int, char, long long, short types, int a = 10; a> 10; (1 + 2); expresiones, etc.
2. Expresiones constantes como 97, '7', etc.

2.2.2 declaración de interrupción

Rol: la declaración de interrupción en la declaración de cambio puede lograr la ramificación.
Ejemplo:
(1) Sin descanso

switch (3)
	{
    
    
	case 1:
		printf("星期一\n");
	case 2:
		printf("星期二\n");
	case 3:
		printf("星期三\n");
	case 4:
		printf("星期四\n");
	case 5:
		printf("星期五\n");
	case 6:
		printf("星期六\n");
	case 7:
		printf("星期天\n");

	}

Resultado:
Inserte la descripción de la imagen aquí
(2) Hay una pausa

switch (3)
	{
    
    
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 3:
		printf("星期三\n");
		break;
	case 4:
		printf("星期四\n");
		break;
	case 5:
		printf("星期五\n");
		break;
	case 6:
		printf("星期六\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	}

Resultado:
Inserte la descripción de la imagen aquí
(3) Cambios en la demanda

int main()
{
    
    
	int day = 3;
	switch (day)
	{
    
    
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("weekday\n");
		break;
	case 6:
	case 7:
		printf("weekday\n");
		break;

	}
}

Producción:
Inserte la descripción de la imagen aquí

2.2.3 declaración predeterminada

Función: cuando el valor de la expresión no coincide con el caso, se ejecuta la declaración predeterminada.
Explicación:
1. La declaración predeterminada puede aparecer en cualquier lugar donde aparezca una declaración de caso.
2. Cuando el valor de la expresión después del cambio no coincide con el caso, se ejecuta la instrucción predeterminada y solo puede aparecer un valor predeterminado en una instrucción de cambio.
3. La declaración predeterminada se puede omitir, pero como una buena práctica de programación, puede agregar la declaración predeterminada a la declaración del caso y agregar un descanso después de ella.
Acerca del ejemplo de posición predeterminada:
(1) al final

int main()
{
    
    
	switch ('r')
	{
    
    
	case 'w':
		printf("工作日\n");
		break;
	case 'r':
		printf("休息日\n");
		break;
	case's':
		printf("加班日\n");
	default:
		printf("输入有误\n");
		break;
	}
	return 0;
}

Salida:
Inserte la descripción de la imagen aquí
(2) en el medio
// antes de la oración correspondiente

int main()
{
    
    
	switch ('r')
	{
    
    
	case 'w':
		printf("工作日\n");
		break;
	default:
		printf("输入有误\n");
		break;
	case 'r':
		printf("休息日\n");
		break;
	case's':
		printf("加班日\n");
	}
	return 0;
}

Salida:
Inserte la descripción de la imagen aquí
// Después de la declaración coincidente

int main()
{
    
    
	switch ('r')
	{
    
    
	case 'w':
		printf("工作日\n");
		break;
	case 'r':
		printf("休息日\n");
		break;
	default:
		printf("输入有误\n");
		break;
	case's':
		printf("加班日\n");

	}
	return 0;
}

Salida:
Inserte la descripción de la imagen aquí
// No coincide en la declaración del caso

int main()
{
    
    
	switch ('N')
	{
    
    
	case 'w':
		printf("工作日\n");
		break;
	default:
		printf("输入有误\n");
		break;
	case 'r':
		printf("休息日\n");
		break;
	case's':
		printf("加班日\n");
	}
	return 0;
}

Producción:
Inserte la descripción de la imagen aquí

2.2.4 Anidamiento de declaraciones de cambio

Ejemplo: (puede intentar generar el resultado)

int main()
{
    
    
  int n = 1;
  int m = 2;
  switch (n)
 {
    
    
  case 1:
      m++;
  case 2:
      n++;
  case 3:
      switch (n)
     {
    
    
      case 1:
          n++;
      case 2:
          m++;
          n++;
          break;
     }
  case 4:
      m++;
      break;
  default:
      break;
 }
  printf("m = %d, n = %d\n", m, n);
  return 0;
}

Salida:
Inserte la descripción de la imagen aquí
Descripción:
1. La declaración de cambio admite el uso anidado.
2. Cuando se usa el conjunto actual, la ruptura en la declaración de cambio simplemente salta de la declaración de cambio más cercana.

3. Bloque de código

1. Un {} es un bloque de código.
2. Cualquier variable definida en un bloque de código se llama variable temporal, y una función también es un bloque de código, porque las funciones también están encerradas en {}.
3. Todas las variables definidas en el código se denominan variables locales, que solo son válidas en este bloque de código.
(1) error

int main()
{
    
    
	int flag = 6;
	if (6 == flag)
	{
    
    
		int x = 10;
	}
	printf("%d\n", x);
	return 0;
}

Salida:
Inserte la descripción de la imagen aquí
(2) Compilación pasada

int main()
{
    
    
	int flag = 6;
	if (6 == flag)
	{
    
    
		int x = 10;
		printf("%d\n", x);
	}
	int x = 20;
	printf("%d\n", x);
	return 0;
}

Producción:
Inserte la descripción de la imagen aquí

Finalmente,
gracias por mirar ~~ ¡
Por favor corríjame si hay algún problema con el contenido del artículo!
¡Vamos juntos!

Supongo que te gusta

Origin blog.csdn.net/m0_46630468/article/details/110510476
Recomendado
Clasificación