Introdução
Neste artigo da série Iniciando em C++ você aprenderá o que são instruções e expressões e como se trabalha com operadores.
Instruções
Na verdade, um programa nada mais é do que um conjunto de comandos executados em seqüência. Uma instrução controla a seqüência de execução, avalia uma expressão ou não faz nada (a instrução null). Todas as instruções em C++ terminam com um ponto-e-vírgula.
Uma instrução simples e comum é uma atribuição:
x = a + b;
Ao contrário da álgebra, essa instrução não significa que x é igual a a+b. Na verdade, ela é lida da seguinte maneira: "Atribua o valor da soma de a e b a x." ou "atribua a x, a + b". Muito embora essa instrução faça duas coisas, ela é uma instrução e, portanto, tem um ponto-e-vírgula. O operador de atribuição atribui qualquer coisa que esteja à direita de qualquer coisa que esteja à esquerda.
Espaço em branco
Os espaços, juntamente com as tabulações e as novas linhas, são chamados de espaços em branco. Em geral, o espaço em branco extra é ignorado pelo compilador; qualquer lugar no qual você veja um espaço pode colocar uma tabulação ou uma nova linha sem maiores problemas. A única finalidade de se incluir um espaço em branco é tornar o programa mais legível para os humanos; o compilador não perceberá a sua existência.
A instrução de atribuição poderia ter sido digitada como
x=a+b;
ou como
x = a+ b;
DICA: Use espaços em branco para tornar o código mais legível. Embora essa última variação seja aceita sem o menor problema, ela também é uma grande tolice. O espaço em branco deve ser usado para tornar os programas mais legíveis e fáceis de manter, mas também pode ser usado para criar um código indecifrável. Nesse caso, como em tudo o mais, a C++ fornece o poder; o julgamento é você quem faz.
Instruções compostas
Qualquer que seja o lugar no qual você coloque uma instrução simples, coloca também uma instrução composta.
Instrução composta é uma instrução que comece com uma chave de abertura ({) e termine com uma chave de fechamento (}).
Embora todas as instruções em uma instrução composta devam terminar com um ponto e vírgula, a instrução composta em si não termina com um ponto-e-vírgula. Por exemplo:
{
temp = a;
a = b;
b = temp;
}
Essa instrução composta alterna os valores nas variáveis a e b.
Expressões
Qualquer coisa que retorne um valor é uma expressão em C++.
Operadores
Um operador é um símbolo que faz com que o compilador execute uma ação.
Operador de atribuição
O operador de atribuição (=) faz o operando à esquerda do operador de atribuição ter seu valor alterado para o valor à direita do operador de atribuição. A expressão
x = a + b;
atribui o valor que resulta da adição de a e b ao operando x.
Um operando que pode estar legalmente à esquerda de um operador de atribuição é chamado de um valor e (esquerda). O que pode estar à direita é chamado (como pode imaginar) de valor d.
As constantes são valores d; elas não podem ser valores e. Dessa maneira, você pode digitar
x = 35; // OK
mas não pode digitar
35 = x; // erro, isso não é um valor e!
Valores E e valores D - Um valor E é um operando que pode estar à esquerda de uma expressão. Um valor D é um operando que pode estar à direita de uma expressão. Observe que todos os valores E são valores D, mas nem todos os valores D são valores E. Um exemplo de valor D que não é um valor E é uma literal. Desse modo, você pode digitar x = 5;, mas não pode digitar 5 = x;
Operadores matemáticos
Existem cinco operadores matemáticos: adição (+), subtração (-), multiplicação (*), divisão (/) e módulo (%). Adição, subtração e multiplicação agem como você está acostumado. O mesmo não acontece com a divisão.
A divisão de um inteiro apresenta algumas diferenças em relação à divisão cotidiana. Quando você divide 21 por 4, o resultado é um número real (um número com fração). Os inteiros não aceitam frações e, por essa razão, o 'resto' é descartado. O valor retornado por 21 / 4 é 5.
O operador de módulo (%) retorna o valor do resto da divisão do inteiro.
Portanto, 21 % 4 é 1, pois 21/4 é 5 com um resto de 1.
Surpreendentemente, a descoberta do módulo tem lá sua utilidade. Por exemplo, pode ser que você deseje imprimir uma instrução a cada dez ações.
Sabe-se, no entanto, que qualquer número % 10 retornará 0 se o número for um múltiplo de 10. Assim, 20 % 10 é zero. 30 % 10 é zero.