Declaración condicional en lenguaje C
Declaración de expresión condicional
1. declaración if
declaración if (expresión) 1;
Si el valor de la expresión es If no es 0, ejecute la declaración 1; de lo contrario, omita la declaración y continúe ejecutando las siguientes declaraciones.
Si la declaración 1 tiene más de una declaración para ejecutar, se debe usar {} para incluir estas declaraciones. En este caso, la declaración condicional tiene la forma:
if (. expresión)
{
Cuerpo de la declaración 1, 2, 3;
}
Por ejemplo:
si(x> =0) y=x;
si(a||b&&c)
{
z=a+b;
c+ =z;
}
sentencia if--else
Además de especificar ciertas declaraciones que se ejecutarán cuando la condición sea verdadera, También puede ejecutar la declaración cuando la condición es falsa y ejecutar otro fragmento de código. Utilice la declaración else en la declaración C para lograr este propósito.
si (expresión) declaración 1;
else declaración 2;
De manera similar, cuando la declaración 1 o la declaración 2 son más de una declaración, debe usar {} adjuntar declaraciones. Por ejemplo:
if(x>=0) y=x;
else y=-x;
if--else if--else estructura
if(expresión 1)
Declaración 1;
si no(expresión 2)
Declaración 2;
else if(expresión 3)
Declaración 3;
.
else
Declaración n;
Esta estructura juzga las condiciones una por una de arriba a abajo. Una vez que se cumple la condición, se ejecutan las declaraciones relacionadas y se omiten otros pasos restantes; si no se cumple ninguna condición, se ejecuta la última declaración else; norte. La última opción suele servir como condición predeterminada. Asimismo, si se va a ejecutar más de una declaración en cada condición, estas declaraciones deben incluirse usando {}.
Las declaraciones condicionales se pueden anidar. Esta situación se encuentra a menudo, pero las declaraciones condicionales anidadas son propensas a errores. La razón principal es que no sabemos cuál si corresponde a cuál más.
Por ejemplo:
if(x>20||x<-10)
if(y<=100&&y>x)
printf(Bueno);
else
printf(Malo);
Para la situación anterior, Turbo C estipula: la declaración else coincide con la más reciente if declaración, de lo contrario, en el ejemplo anterior coincide con if(y<=100&&y>x). Para que else coincida con if(x>20||x<-10), se deben utilizar llaves. Como se muestra a continuación:
if(x>20||x<-10)
{
if(y<=100&&y>x)
printf(Bueno);
}
else
printf(Malo);
Aquí hay algunos ejemplos:
1. Ingrese un número, si es mayor que 0, genere más; si es un número negativo, genere negativo si es exactamente 0;
main()
{
número flotante;
scanf(%f,&f);
if(num>0)
printf(plus\n);
si no(num<0)
printf(negativo\n); p>
else if(num<0)
printf(negativo\n);
p>
else
printf(cero\ n);
}
Primero defina dos variables, luego ingrese un número y luego juzgue este rango de números y genere la cadena correspondiente.
2. Ingrese un número x y genere y. donde y es el valor absoluto de x.
main()
{
float x,y;
scanf(%f,&x);
if(x>=0) y=x;
si no y=-x;
printf(%f\n,y);
}
Trubo C 2.0 ha escrito algunas funciones de uso común, solo necesitamos usarlas. Por ejemplo, la función de encontrar valores absolutos está disponible en la biblioteca C. Vea a continuación:
#include math.h
main()
{
float x,y;
scanf(%f,&x);
y=fabs(x); /*Encuentra el valor absoluto de x y luego asígnalo a y*/
printf( %f \n,y);
}
Este programa realiza exactamente la misma función que el programa anterior, y ambos encuentran el valor absoluto. Se puede ver que el siguiente método es mejor que el anterior.
Dado que fabs() es una función que viene con el sistema, al usarla debemos incluir el archivo de biblioteca math.h donde se encuentra ubicado en el programa, que es la primera línea del programa. Otras similares incluyen encontrar la raíz cuadrada sqrt(), encontrar la potencia exponencial exp(), etc. Estas funciones relacionadas con las matemáticas están todas en math.h.
3. La entrada x, la salida y, x e y satisfacen la relación:
x<-5 y=x;
-5<=x< 1 y=2*x+5;
1<=x<4 y=x+6;
x>=4 y=3*x-2;
El programa es el siguiente:
main()
{
float x,y;
scanf(% f,&x) ;
if(x<-5)
y=x;
si no(-5<=x&&x<1) p>
y=2*x+5;
si no(1<=x&&x<4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);
}
Dos puntos Cabe señalar aquí:
(1).-5<=x&&x<1
No se puede escribir como -5<=x<1;1<=x&&x<4, ni ¿Se puede escribir como 1<=x<4? En lenguaje C, no se pueden reconocer desigualdades continuas.
(2).y=2*x+5 no se puede escribir como y=2x+5; y=3*x-2 no se puede escribir como y=3x-2; La forma en que normalmente lo escribimos no es la misma.
4. Ingrese tres números x, y, z y luego envíelos de mayor a menor.
main()
{
flotante x,y,z;
scanf(%f%f%f,&x, &y,&z); si(x>=y&&x>=z) {
printf(%f\t,x);
if(y>=z) printf(% f\t%f\n,y,z); si no printf(%f\t%f\n,z,y }
si(y>=x&&y>=z) {
printf(%f\t,y);
if(x>=z) printf(%f\t%f\n,x,z); else printf( %f\t%f\n,z,x); }
else
{
printf(%f\t,z); p> p>
if(x>=y) printf(%f\t%f\n,x,y); else printf(%f\t%f\n,y,x }); p>
}
Nota: Esta es una estructura anidada típica de declaraciones if. Si no se utilizan paréntesis, la relación correspondiente entre if y else se arruinará.
sentencia switch--case
Al escribir programas, a menudo nos encontramos con problemas de rutas múltiples que se dividen según diferentes situaciones. En este caso, las declaraciones if -else-if anidadas pueden. Se puede utilizar para resolver el problema, pero las declaraciones if-else-if son incómodas de usar y propensas a errores. Para esta situación, Turbo C proporciona una declaración de cambio.
El formato de la declaración de cambio es:
switch(variable)
{
caso constante 1:
Declaración 1 o vacía;
Constante de caso 2:
Declaración 2 o vacía;
.
Constante de caso n:
Declaración n o vacía;
predeterminado:
Declaración n+1 o vacía;
}
Ejecutar declaración de cambio Cuando, compare las variables una por una con las constantes después del caso. Si son iguales a una de ellas
, se ejecutará la declaración bajo la constante. se ejecutará la declaración después del incumplimiento.
Nota:
1. La variable en switch puede ser un valor numérico o un carácter, pero debe ser un número entero.
2. Algunos casos y valores predeterminados se pueden omitir.
3. La declaración después de cada caso o valor predeterminado puede ser un cuerpo de declaración, pero no es necesario que esté encerrada entre {}. Por ejemplo:
main()
{
intx,y;
scanf(%d,&x);
bruja(x)
{
caso 1:
y=x+1;
romper /* Salga de la instrucción Switch, salga solo cuando se encuentre una interrupción*/
caso 4:
y=2*x+1;
break;
predeterminado:
y=x--;
romper;
printf(%d\n,y);
}
Los programas escritos con sentencias switch definitivamente se pueden hacer con sentencias if. Entonces, ¿bajo qué circunstancias es necesario utilizar la declaración de cambio? Generalmente se usa cuando ocurre un número entero comparativo o cuando se puede convertir en un número entero comparativo. Mire el siguiente ejemplo:
Ejemplo: La puntuación de un estudiante se divide en cinco calificaciones. Aquellos con más de 90 puntos son 'A', 80-89 son 'B', 70-79 son 'C'. , y 60- Una puntuación de 69 es una 'D' y una puntuación inferior a 60 es una 'E'. Ahora ingrese las calificaciones de un estudiante y genere su calificación.
(1). Utilice la instrucción if
main()
{
float num;
char. calificación;
scanf(%d,&num);
if(num>=90) calificación='A';
si no(num>= 80&&num<89) calificación='B';
si no(num>=70&&num<79) calificación='C';
si no(num>=60&&num<69) calificación='D';
else calificación='E';
printf(%c,calificación);
}
(2) Utilice la instrucción de cambio
main()
{
intnum;
char grade;
num/=10;
cambiar(num)
{
caso 10:
caso 9:
calificación='A';
descanso;
caso 8:
calificación ='B';
descanso;
caso 7:
grado='C';
descanso;
caso 6:
grado='D';
descanso;
predeterminado:
grado='E';
break;
}
printf(%c,grade);
}
Para explicar, No todos los casos tienen una declaración, a veces está vacía, como esta pregunta. El orden de ejecución de la declaración de cambio se juzga desde el primer caso. Si es correcto, se ejecutará hasta el descanso; si es incorrecto, se ejecutará en el siguiente caso. Entonces aquí, cuando la puntuación sea 100 puntos, ejecute el caso 10: y luego ejecute a continuación, grade='A';break;exit