A instrução if em C ++

ao encontrar E se

Conteúdo

, C ++ primeiro executa a expressão lógica contido dentro dos parênteses. No código a seguir, o programa avalia a expressão condicional # 147 é m Melhor que n.# 148;

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

Se a expressão for verdade, isto é, se m maior do que realmente é n, em seguida, o controle passa para a primeira declaração após a {e continua a partir daí. 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 utilizados para comparar os valores lógicos nas expressões.

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

Os Operadores de comparação
OperadorSignificado
==igualdade-verdadeiro se a expressão do lado esquerdo do '==' tem o mesmo valor que a expressão em theright
!=Desigualdade oposto da igualdade
>maior que- verdadeiro se a esquerda; a expressão manual é maior thanthe um à direita
lt;menos que- verdadeiro se a esquerda; a expressão manual é inferior a theone à direita
> =maior do que ou igual a- verdadeiro se a esquerda; isgreater expressão mão do que ou igual à da direita
lt; =inferior ou igual a- verdadeiro se a esquerda; expressão mão é LessThan ou igual à da direita

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

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

// BranchDemo - demonstram a instrução if # incluem #incluir #incluir usando namespace std-int main (int nNumberofArgs, char * pszArgs []) {// inserir operand1 e operand2int nOperand1-int nOperand2-cout lt; lt; "Enter argumento 1:" - cin >> nOperand1-cout lt; lt; "Enter argumento 2:" - cin >> nOperand2 - // agora imprimir o resultsif (nOperand1> nOperand2) {cout lt; lt; "Argumento 1 é maior do que o argumento 2" 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 () - retornar 0-}

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ê na 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 emite 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 do que um argumento 2Prima Enter para continuar. . .

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

image0.jpg

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

Dizer # 147 Não # 148- para # 147-No cintas # 148-

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

// Não é possível ter uma duração negativa. Se a idade é menor que zero ... if (Nage lt; 0) cout lt; lt; "A 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 emite uma mensagem e redefine nage a zero. Na verdade, os conjuntos de programas nage a zero de qualquer maneira, não importa o que seu valor original. O trecho anterior é equivalente ao seguinte:

// Não é possível ter uma duração negativa. Se a idade é menor que zero ... if (Nage lt; 0) {cout lt; lt; "A 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 queria dizer o seguinte:

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

compilador do C ++ não pode travar 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 utilizar as 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.

» » » » A instrução if em C ++