Declaración de rama del lenguaje C
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
2.1.1 Estructura gramatical
(1)
if (表达式)
{
代码块;
}
(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:
// 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.
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:
(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:
(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:
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:
(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:
// 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:
// 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:
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:
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:
(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:
Finalmente,
gracias por mirar ~~ ¡
Por favor corríjame si hay algún problema con el contenido del artículo!
¡Vamos juntos!