A instrução if em c ++

ao encontrar E se

, C ++ primeiro executa a expressão lógica contida dentro dos parênteses. No código a seguir, o programa avalia a expressão condicional “é m Melhor que n.”

if (m gt; n) // se m é maior do que n ... {// ... então fazer essas coisas}

Se a expressão for verdade, isto é, se m realmente é maior do que n, em seguida, o controle passa para a primeira declaração após a {e continua de lá. Se a expressão lógica não é verdade, o controle passa para a primeira declaração após a}.

Os operadores de comparação em C ++

A tabela mostra os diferentes operadores que podem ser usados ​​para comparar valores em expressões lógicas.

Video: Programação em C - Aula 31 - Switch I - eXcript

Operadores binários têm o formato expr1 expr2 operador.

Os Operadores de comparação
OperadorSignificado
==igualdade-verdadeiro se a expressão no lado esquerdo do
&lsquo - ==&rsquo- tem o mesmo valor que a expressão na
certo
!=Desigualdade oposto da igualdade
gt;maior que- verdadeiro se a esquerda; a expressão manual é maior do que
o outro à direita
lt;menos que- verdadeiro se a esquerda; a expressão manual é menor que o
um à direita
gt; =maior ou igual a- verdadeiro se a esquerda; a expressão manual é
maior ou igual a um à direita
lt; =menor ou igual a- verdadeiro se a esquerda; a expressão manual é menos
ou igual à da direita

Não confunda o operador de igualdade (==) com o operador de atribuição (=). Este é um erro comum para novatos.

Os seguintes BranchDemo programa mostra como os operadores são usados:

// BranchDemo - demonstrar se a declaração # include #incluir #incluir usando espaço de nomes std-int principal (int nNumberofArgs, char * pszArgs []) {// entrar operando1 e operand2int nOperand1-int nOperand2-cout lt; lt; "Digite argumento 1:"CIN II-III gt; gt; nOperand1-cout lt; lt; "Digite argumento 2:"CIN II-III gt; gt; nOperand2 - // agora imprimir o resultsif (nOperand1 gt; nOperand2) {cout lt; lt; "Argumento 1 é maior do que 2 argumento"lt; lt; endl-} if (nOperand1 lt; nOperand2) {cout lt; lt; "Argumento 1 é menos de argumento 2"lt; lt; endl-} if (nOperand1 == nOperand2) {cout lt; lt; "Argumento 1 é igual ao argumento 2"lt; lt; endl -} // espera até que o usuário está pronto antes de terminar o programa // para permitir que o usuário veja o resultscout programa lt; lt; "Pressione Enter para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - 0-} retornar

A execução do programa começa com a Principal() como sempre. O primeiro programa declara duas int variáveis ​​habilmente nomeado nOperand1 e nOperand2. Em seguida, ele solicita que o usuário “Enter argumento 1”, que ele lê em nOperand1. O processo é repetido para nOperand2.

O programa então executa uma sequência de três comparações. Ele primeiro verifica se nOperand1 é menos do que nOperand2. Se assim for, o programa gera a notificação “Argumento 1 é menos de argumento 2”. O segundo E se declaração exibe uma mensagem se os dois operandos são iguais em valor. A comparação final é verdadeiro se nOperand1 é melhor que nOperand2.

O seguinte mostra um exemplo de execução do BranchDemo programa:

Digite argumento 1:5Digite argumento 2:10Argumento 1 é menos de argumento 2Carregue Enter para continuar. . .


A figura mostra o fluxo de controlo graficamente para esta corrida particular.

A forma como o BranchDemo programa é escrito, todas as três comparações são realizadas a cada vez. Isso é um pouco desperdício desde as três condições são mutuamente exclusivas. Por exemplo, nOperand1 gt; nOperand2 não pode ser verdade se nOperand1 lt; nOperand2 já foi encontrado para ser verdade.

Dizer “não” para “Não chaves”

Na verdade, as chaves são opcionais. Sem chaves, apenas a primeira expressão após a E se declaração é condicional. No entanto, é muito muito fácil cometer um erro desta forma, como demonstrado no seguinte trecho:

Video: Curso C++ - Aula 33 - Instrução Switch

// Não pode ter uma duração negativa. Se a idade é menor que zero ... se (Nage lt; 0) cout lt; lt; "Idade não pode ser negativa usando 0" lt; lt; endl-nage = 0 - // programa continua

Você pode pensar que, se nage é inferior a 0, este programa trecho gera uma mensagem e redefine nage para zero. Na verdade, os conjuntos de programas nage a zero de qualquer maneira, não importa o que seu valor original. O fragmento anterior é equivalente à que se segue:

Video: Programação em C - Aula 39 - Break e Continue

// Não pode ter uma duração negativa. Se a idade é menor que zero ... se (Nage lt; 0) {cout lt; lt; "Idade não pode ser negativa usando 0" lt; lt; endl-} Nage = 0 - // programa continua

É claro a partir dos comentários e o travessão que o programador realmente quis dizer o seguinte:

// Não pode ter uma duração negativa. Se a idade é menor que zero ... se (Nage lt; 0) {cout lt; lt; "Idade não pode ser negativa usando 0" lt; lt; endl-nage = 0 -} // programa continua

compilador do C ++ não pode pegar este tipo de erro. É mais seguro se você sempre fornecer as chaves.

C ++ trata todos os espaços em branco da mesma. Ele ignora o alinhamento das expressões na página.

Sempre use chaves para incluir as declarações depois de uma instrução if, mesmo se houver apenas um. Você vai gerar muito menos erros que maneira.


Publicações relacionadas