A instrução if em c ++
ao encontrar E se
Conteúdo
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.
Operador | Significado |
---|---|
== | 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.