Neste tutorial, você aprenderá sobre a instrução if (incluindo if… else e aninhada if… else) na programação C com a ajuda de exemplos.
Declaração C if
A sintaxe da if
instrução na programação C é:
if (test expression) ( // statements to be executed if the test expression is true )
Como se a declaração funciona?
A if
instrução avalia a expressão de teste entre parênteses ()
.
- Se a expressão de teste for avaliada como verdadeira, as instruções dentro do corpo de
if
são executadas. - Se a expressão de teste for avaliada como falsa, as instruções dentro do corpo de
if
não serão executadas.
Para saber mais sobre quando a expressão de teste é avaliada como verdadeira (valor diferente de zero) e falsa (0), verifique os operadores relacionais e lógicos.
Exemplo 1: declaração if
// Program to display a number if it is negative #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) ( printf("You entered %d.", number); ) printf("The if statement is easy."); return 0; )
Produto 1
Insira um número inteiro: -2 Você inseriu -2. A instrução if é fácil.
Quando o usuário insere -2, a expressão de teste number<0
é avaliada como verdadeira. Portanto, Você digitou -2 é exibido na tela.
Produto 2
Insira um número inteiro: 5 A instrução if é fácil.
Quando o usuário insere 5, a expressão de teste number<0
é avaliada como falsa e a instrução dentro do corpo de if
não é executada
Declaração C if … else
A if
instrução pode ter um else
bloco opcional . A sintaxe da if… else
declaração é:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Como se … a instrução else funcionar?
Se a expressão de teste for avaliada como verdadeira,
- instruções dentro do corpo de
if
são executadas. - as instruções dentro do corpo de
else
são ignoradas na execução.
Se a expressão de teste for avaliada como falsa,
- declarações dentro do corpo de
else
são executadas - as instruções dentro do corpo de
if
são ignoradas na execução.
Exemplo 2: declaração if… else
// Check whether an integer is odd or even #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) ( printf("%d is an even integer.",number); ) else ( printf("%d is an odd integer.",number); ) return 0; )
Resultado
Insira um inteiro: 7 7 é um inteiro ímpar.
Quando o usuário insere 7, a expressão de teste number%2==0
é avaliada como falsa. Portanto, a instrução dentro do corpo de else
é executada.
C if … else Ladder
A if… else
instrução executa dois códigos diferentes, dependendo se a expressão de teste é verdadeira ou falsa. Às vezes, uma escolha deve ser feita entre mais de 2 possibilidades.
A escada if… else permite que você verifique entre múltiplas expressões de teste e execute instruções diferentes.
Sintaxe de if … else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Exemplo 3: C if … else Ladder
// Program to relate two integers using =,> or < symbol #include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) ( printf("Result: %d = %d",number1,number2); ) //checks if number1 is greater than number2. else if (number1> number2) ( printf("Result: %d> %d", number1, number2); ) //checks if both test expressions are false else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Resultado
Insira dois inteiros: 12 23 Resultado: 12 <23
Aninhado se … mais
É possível incluir uma if… else
declaração dentro do corpo de outra if… else
declaração.
Exemplo 4: aninhado if… else
Este programa dada abaixo refere-se dois inteiros utilizando quer <
, >
e =
semelhante ao if… else
exemplo da escada. No entanto, usaremos uma if… else
instrução aninhada para resolver esse problema.
#include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1>= number2) ( if (number1 == number2) ( printf("Result: %d = %d",number1,number2); ) else ( printf("Result: %d> %d", number1, number2); ) ) else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Se o corpo de uma if… else
instrução tiver apenas uma instrução, não será necessário usar colchetes ()
.
Por exemplo, este código
if (a> b) ( print("Hello"); ) print("Hi");
é equivalente a
if (a> b) print("Hello"); print("Hi");