La sentencia if en c ++

Al encontrarse Si, C ++ primero ejecuta la expresión lógica contenida dentro de los paréntesis. En el siguiente código, el programa evalúa la expresión condicional “es metro mas grande que norte.”

Video: 11. Programación en C++ || Condicionales || La sentencia if

si (m gt; n) // si m es mayor que n ... {// ... entonces hacer estas cosas}

Si la expresión es cierto, es decir, si metro verdaderamente es mayor que norte, entonces el control pasa a la primera instrucción después de la {y continúa desde allí. Si la expresión lógica no es cierto, el control pasa a la primera instrucción después de la}.

Los operadores de comparación en C ++

La tabla muestra los diferentes operadores que se pueden utilizar para comparar los valores de las expresiones lógicas.

Los operadores binarios tienen el formato expr2 expr1 operador.

Los operadores de comparación
OperadorSentido
==igualdad- cierto si la expresión de la izquierda de la
&lsquo - ==&rsquo- tiene el mismo valor que la expresión de la
derecho
!=desigualdad- opuesta de la igualdad
gt;mayor que- cierto si la izquierda; la extracción manual es mayor que
El de la derecha
lt;que- menos cierto si la izquierda; la extracción manual es menor que el
uno a la derecha
gt; =mayor o igual a- cierto si la izquierda; la extracción manual es
mayor que o igual a la de la derecha
lt; =menor o igual a- cierto si la izquierda; la extracción manual es menos
que o igual a la de la derecha

No se debe confundir el operador de igualdad (==) con el operador de asignación (=). Este es un error común para los principiantes.

El seguimiento BranchDemo programa muestra cómo se utilizan los operadores:

// BranchDemo - demostrar la sentencia if # include #incluir #incluir usando espacio de nombres std-int main (int nNumberofArgs, char * pszArgs []) {// entrar operando1 y operand2int nOperand1-int nOperand2-cout lt; lt; "Introduzca el argumento 1:"-cin gt; gt; nOperand1-cout lt; lt; "Introduzca el argumento 2:"-cin gt; gt; nOperand2 - // ahora imprimir el resultsif (nOperand1 gt; nOperand2) {cout lt; lt; "Argumento 1 es mayor que el argumento 2"lt; lt; endl-} if (nOperand1 lt; nOperand2) {cout lt; lt; "Argumento 1 es menor que el argumento 2"lt; lt; endl-} if (nOperand1 == nOperand2) {cout lt; lt; "Argumento 1 es igual al argumento 2"lt; lt; endl -} // espera hasta que el usuario esté listo antes de finalizar el programa // para permitir al usuario ver el programa resultscout lt; lt; "Pulse Intro para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - volver 0-}

La ejecución del programa se inicia con principal() como siempre. El programa declara dos primeros int las variables inteligentemente nombrados nOperand1 y nOperand2. A continuación, pide al usuario que “Introduzca el argumento 1”, que se lee en nOperand1. El proceso se repite para nOperand2.

Video: Tutorial de C++ en Español -13- La Sentencia If Else

Entonces, el programa ejecuta una secuencia de tres comparaciones. En primer lugar comprueba si nOperand1 es menos que nOperand2. Si es así, el programa emite la notificación “Argumento 1 es menor que el argumento 2”. El segundo Si declaración muestra un mensaje si los dos operandos son iguales en valor. La comparación final es cierto si nOperand1 es mayor que nOperand2.

A continuación se muestra una muestra de ejecución de la BranchDemo programa:

Introduzca el argumento 1:5Introduzca el argumento 2:10Argumento 1 es menor que el argumento 2 Pulse Intro para continuar. . .

La figura muestra el flujo de control gráficamente para esta ejecución particular.

Video: Tutoriales C++ - #7 Sentencia else - if y Evaluación en cortocircuito

La forma en que el BranchDemo programa está escrito, las tres comparaciones se realizan cada vez. Esto es un poco un desperdicio ya que las tres condiciones son mutuamente excluyentes. Por ejemplo, nOperand1 gt; nOperand2 No puede ser cierto si nOperand1 lt; nOperand2 Ya se ha encontrado para ser verdad.

Decir “no” a “NO” apoyos

En realidad, los tirantes son opcionales. Sin aparatos, sólo la primera expresión después de la Si declaración es condicional. Sin embargo, es demasiado fácil cometer un error de esta manera, como se demuestra en el siguiente fragmento:

// No se puede tener una edad negativa. Si la edad es menor que cero si ... (Nage lt; 0) cout lt; lt; "La edad no puede ser negativo- usando 0" lt; lt; endl-nage = 0 - // programa continúa

Usted puede pensar que si nage es inferior a 0, este programa fragmento emite un mensaje y se restablece nage a cero. De hecho, los conjuntos de programas nage a cero de todos modos, no importa lo que su valor original. El fragmento anterior es equivalente a la siguiente:

// No se puede tener una edad negativa. Si la edad es menor que cero si ... (Nage lt; 0) {cout lt; lt; "La edad no puede ser negativo- usando 0" lt; lt; endl-} nage = 0 - // programa continúa

Está claro a partir de los comentarios y el guión que el programador en realidad quería decir lo siguiente:

// No se puede tener una edad negativa. Si la edad es menor que cero si ... (Nage lt; 0) {cout lt; lt; "La edad no puede ser negativo- usando 0" lt; lt; endl-nage = 0 -} // programa continúa

El compilador de C ++ no puede detectar este tipo de error. Es sólo más seguro si siempre proporciona los apoyos.

C ++ trata a todos los espacios en blanco de la misma. No tiene en cuenta la alineación de las expresiones en la página.

Siempre use llaves para encerrar las declaraciones después de una sentencia if, incluso si sólo hay una. Va a generar muchos menos errores de esa manera.

Artículos Relacionados