#include <stdio.h>
int main()
{
int b;
printf("Digite um valor:");
scanf("%d", &b);
if (b < 0)
printf("O valor é negativo ");
return 0;
}
Este programa aceita um número do usuário. Ele então testa esse número utilizando uma instrução if para ver se ele é menor que 0. Se for, o programa imprime uma mensagem. Caso contrário, o programa não faz nada. A parte (b < 0) do programa é a expressão booleana. A linguagem C avalia esta expressão para decidir se imprime ou não a mensagem. Se a expressão booleana se mostra Verdadeira, então a linguagem C executa a linha imediatamente posterior à instrução if (ou um bloco de linhas entre chaves logo após a instrução if). Se a expressão booleana se mostrar Falsa, então a linguagem C pula a linha ou bloco de linhas logo após a instrução if.
![]() |
Eis um exemplo um pouco mais complexo:
#include <stdio.h>
int main()
{
int b;
printf("Digite um valor:");
scanf("%d", &b);
if (b < 0)
printf("O valor é negativo ");
else if (b == 0)
printf("O valor é zero ");
else
printf("O valor é positivo ");
return 0;
}
Neste exemplo, as seções else if e else avaliam tanto para valores positivos como zero.
Eis uma expressão booleana mais complicada:
if ((x==y) && (j>k))
z=1;
else
q=10;
Esta instrução diz: "Se o valor da variável x for igual ao valor da variável y, e se o valor da variável j for maior que o valor da variável k, então defina a variável z como 1; de outro modo, defina a variável q como 10". Você usará instruções if como esta em todos os seus programas C para tomar decisões. De um modo geral, a maioria das decisões será simples como o primeiro exemplo, mas, eventualmente, as coisas podem ser um pouco mais complicadas.
Observe que a linguagem C utiliza == para testar a igualdade, enquanto utiliza = para atribuir um valor a uma variável. O símbolo && em C representa uma operação booleana AND.
Aqui estão todos os operadores booleanos em C:
igualdade == menor que < maior que > menor ou igual <= maior ou igual >= desigualdade != e && ou || não !
Você descobrirá que as instruções while são tão fáceis de utilizar como as instruções if. Por exemplo:
while (a < b)
{
print("%d\n", a);
a = a + 1;
}
Isso faz com que duas linhas entre chaves sejam executadas repetidamente até que a seja maior ou igual a b. Em geral, a instrução while funciona assim:
![]() |
A linguagem C também oferece uma estrutura do-while:
do
{
printf("%d\n", a);
a = a + 1;
}
while (a < b);
O loop for na linguagem C é apenas um atalho para expressar uma instrução while. Por exemplo, suponha que você tenha o seguinte código em C:
x=1;
while (x<10)
{
blá blá blá
x++; /* x++ é o mesmo que dizer x=x+1 */
}
Você pode converter isso em um loop for da seguinte forma:
for(x=1; x<10; x++)
{
blá blá blá
}
Observe que o loop while contém uma etapa de inicialização (x=1), uma etapa de teste (x<10) e uma de incremento (x++). O loop for permite colocar as três partes em uma única linha, mas você pode colocar qualquer coisa nelas. Por exemplo, suponha que você tenha o seguinte loop:
a=1;
b=6;
while (a < b)
{
a++;
printf("%d\n",a);
}
Você também pode colocá-lo para indicação:
for (a=1,b=6; a < b; a++,printf("%dn",a));
É um pouco confuso, mas é possível. O operador vírgula permite separar diversas instruções diferentes nas seções de inicialização e incremento do loop for (porém não na seção de teste). Muitos programadores de linguagem C gostam de concentrar muitas informações em uma única linha de código. Outros acham que isto torna o código mais difícil de entender, e portanto desmembram essas instruções.
O sinal == é um problema na linguagem C pois freqüentemente você se esquece e digita apenas = em uma expressão booleana. Este é um erro comum de ocorrer, mas para o compilador há uma diferença significativa. A linguagem C aceitará = e == em uma expressão booleana, mas o comportamento do programa mudará consideravelmente quando usamos um ou outro.
As expressões booleanas em C avaliam os inteiros e os inteiros podem ser usados dentro de expressões booleanas. O valor inteiro 0 em C é Falso, enquanto qualquer outro valor inteiro é Verdadeiro. É código seguinte é permitido em C: #include Se a for qualquer número diferente de 0, a instrução printf é executada. Em C, uma instrução como if (a=b) significa: “Atribuir b para a, e então testar a para seu valor Booleano". Assim, se a retornar o valor 0, a instrução if é Falsa. Caso contrário, é Verdadeira. O valor de a muda durante o processo. Este não é o comportamento desejado se você pretendeu digitar == (embora esta característica seja útil quando usada corretamente), assim, tenha cuidado com o uso de = e ==. |
| FAVORITOS | |||||
| Faça do HowStuffWorks a sua página inicial | | | digg it! (?) | | | del.icio.us | |