Primera introducción al lenguaje C en la formación en lenguaje C (3)

1. ¿Qué es una declaración?

Las declaraciones C se pueden dividir en las siguientes cinco categorías:

  1. declaración de expresión
  2. declaración de llamada de función
  3. declaración de control
  4. declaración compuesta
  5. declaración vacía

Las declaraciones de control se presentan más adelante en este capítulo.
Las declaraciones de control se utilizan para controlar el flujo de ejecución del programa para implementar varios métodos estructurales del programa (el lenguaje C admite tres estructuras: estructura secuencial, estructura de selección, estructura de bucle). Están compuestas por definidores de declaraciones específicas. El lenguaje C tiene nueve tipos. declaración de control.
Se puede dividir en las siguientes tres categorías:

  1. Las declaraciones de juicio condicional también se denominan declaraciones de rama: declaraciones if, declaraciones de cambio;
  2. Declaraciones de ejecución en bucle: declaración do while, declaración while, declaración for;
  3. Declaraciones de giro: declaración de interrupción, declaración de ir a, declaración de continuación, declaración de devolución.

2. Declaración de sucursal (estructura de elección)

Insertar descripción de la imagen aquí

2.1 si declaración

语法结构:
if(表达式)
    语句;
 //加else   
if(表达式)
    语句1;
else
    语句2;
//多分支    
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

Casos prácticos:

#include <stdio.h>
//代码1
int main()
{
    
    
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
    
    
        printf("大人的事,小孩子别管。\n");
   }
}
//代码2
#include <stdio.h>
int main()
{
    
    
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
    
    
        printf("大人的事,小孩子别管。\n");
   }
    else
   {
    
    
        printf("可以干大人的事了\n");
   }
}
//代码3
#include <stdio.h>
int main()
{
    
    
	int level = 0;//功力深浅
	scanf("%d", &level);
	if (level < 1)
	{
    
    
		printf("炼气期的菜鸡\n");
	}
	else if (level >= 1&& level< 3)
	{
    
    
		printf("筑基期,有了一定基础\n");
	}
	else if (level >= 3 && level < 5)
	{
    
    
		printf("金丹期,与筑基有着天壤之别\n");
	}
	else if (level >= 5 && level < 8)
	{
    
    
		printf("元婴期,可元神出窍\n");
	}
	else
	{
    
    
		printf("大佬级别,无法估量等级\n");
	}

}

Para explicar:
si la expresión se evalúa como verdadera, se ejecuta la declaración.
¿Cómo expresar verdadero y falso en lenguaje C?

0 significa falso, distinto de 0 significa verdadero.

Si la condición es verdadera y se van a ejecutar varias declaraciones, ¿cómo se deben utilizar los bloques de código?

#include <stdio.h>
int main()
{
    
    
    if(表达式)
   {
    
    
        语句列表1}
    else
   {
    
    
        语句列表2}
    return 0;
}

El par de {} aquí es un bloque de código.

2.1.1 Flotando más

Cuando escribes este código:

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

¿Parece muy incómodo? Esto es un signo de una base débil. Otros pueden ver tu profundidad de un vistazo.
correcto:

//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include <stdio.h>
int main()
{
    
    
    int a = 0;
    int b = 2;
    if(a == 1)
   {
    
    
        if(b == 2)
       {
    
    
            printf("hehe\n");
       }
   }
    else
   {
    
    
         printf("haha\n");
   }       
    return 0;
}

Coincidencia de else : else coincide con el if más cercano.

2.1.2 Comparación de formas de escritura de if

//代码1
if (condition) {
    
    
	return x;
}
return y;
//代码2
if (condition)
{
    
    
	return x;
}
else
{
    
    
return y;
}
//代码3
int num = 1;
if (num == 5)
{
    
    
	printf("hehe\n");
}
//代码4
int num = 1;
if (5 == num)
{
    
    
	printf("hehe\n");
}

El Código 2 y el Código 4 son mejores, la lógica es más clara y son menos propensos a errores.

2.2 declaración de cambio

La declaración de cambio también es una declaración de rama.
A menudo se utiliza en situaciones de múltiples ramas.
Por ejemplo:

Entrada 1, salida lunes
Entrada 2, salida martes
Entrada 3, salida miércoles
Entrada 4, salida jueves
Entrada 5, salida viernes
Entrada 6, salida sábado
Entrada 7, salida domingo

Entonces no lo escribí como si... de lo contrario, si... de lo contrario, si la forma es demasiado complicada, entonces tenemos que tener una forma gramatical diferente.
Esta es la declaración de cambio.

switch(整型表达式)
{
    
    
    语句项;
}

¿Y qué son los elementos del extracto?

//是一些case语句:
//如下:
case 整形常量表达式:
    语句;

2.2.1 interrupción en la declaración de cambio

En la declaración de cambio, no podemos implementar la rama directamente, solo usando break podemos lograr la rama real.
Por ejemplo:

#include <stdio.h>
int main()
{
    
    
    int day = 0;
    switch(day)
   {
    
    
        case 1printf("星期一\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;
   }
    return 0;
}

A veces nuestras necesidades cambian:

  1. Entrada 1-5, la salida es "día laborable";
  2. Entrada 6-7, salida "fin de semana"

Entonces nuestro código debería implementarse así:

#include <stdio.h>
//switch代码演示
int main()
{
    
    
    int day = 0;
    switch(day)
   {
    
    
        case 1case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0;
}

El efecto real de la declaración de interrupción es dividir la lista de declaraciones en diferentes partes de rama.

Buenos hábitos de programación.

Agregue una declaración de interrupción después de la última declaración de caso.
(La razón para escribir esto es para evitar olvidarse de agregar una declaración de interrupción después de la última declaración del caso).

2.2.2 cláusula por defecto

¿Qué pasa si el valor de la expresión no coincide con el valor de ninguna etiqueta de caso?
De hecho, no es nada, la estructura es que se omiten todas las declaraciones.
El programa no finaliza y no se informa ningún error, porque esta situación no se considera un error en C.
Pero ¿qué pasa si no quieres ignorar el valor de una expresión que no coincide con todas las etiquetas?
Puede agregar una cláusula predeterminada a la lista de declaraciones y colocar la siguiente etiqueta

default

Escríbalo en cualquier lugar donde pueda aparecer una etiqueta de caso.
Cuando el valor de la expresión de cambio no coincide con los valores de todas las etiquetas de caso, se ejecutarán las declaraciones que siguen a la cláusula predeterminada.
Por lo tanto, sólo puede aparecer una cláusula predeterminada en cada declaración de cambio.
Pero puede aparecer en cualquier lugar de la lista de declaraciones y el flujo de declaraciones ejecutará la cláusula predeterminada como si fuera una etiqueta de caso.

Buenos hábitos de programación.

Es un buen hábito poner una cláusula predeterminada en cada declaración de cambio, tal vez incluso una pausa al final.

2.2.3 Ejercicio

#include <stdio.h>
int main()
{
    
    
    int n = 1;
     int m = 2;
    switch (n)
   {
    
    
    case 1:
            m++;
    case 2:
            n++;
    case 3:
            switch (n)
           {
    
    //switch允许嵌套使用
             case 1:
                    n++;
             case 2:
                    m++;
                    n++;
                    break;
           }
    case 4:
            m++;
            break;
    default:
            break;
   }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}    

¿Ves si puedes encontrar la respuesta tú mismo?

m=5,n=3

Supongo que te gusta

Origin blog.csdn.net/weixin_44752340/article/details/130455673
Recomendado
Clasificación