Buscar

Instruções das Linguagens C e C++

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.1 Segunda revisão / 2002 
 
IIVV.. IINNSSTTRRUUÇÇÕÕEESS DDAASS LLIINNGGUUAAGGEENNSS CC EE CC++++ 
As linguagens C e C++ apresentam um número muito pequeno de instruções. Como 
conseqüência, não é difícil conhecer e aprender as instruções básicas da linguagem. Contudo, 
isto não faz com que essas linguagens sejam fáceis de usar, pois o número pequeno de 
instruções (ou comandos) é compensado pela grande quantidade de operadores, como visto na 
seção III, funções padronizadas (e que acompanham os compiladores na forma de bibliotecas 
padrão do ANSI C) e de operadores de classes (que acompanham os compiladores na forma de 
uma biblioteca de classes padrão ANSI C++). 
Pode-se dizer que existem, essencialmente, onze instruções (comandos) básicos, 
relacionados na tabela IV.1. 
Tabela IV.1 : Comandos básicos das linguagens C e C++ 
Instrução Descrição 
expressões expressões em geral 
{ } bloco ou instrução composta 
break controla a interrupção de execução de um bloco 
continue interrompe a iteração atual de um laço 
do ........while laço com teste no final do bloco 
for laço iterativo 
goto desvio incondicional 
if - else processamento condicional 
return retorno explícito de uma função 
switch bloco de processamento condicional 
while laço com teste no início do bloco 
 
Nas subseções a seguir alguns desses comandos serão detalhados, mas não na ordem 
apresentada na tabela. 
IV.A.1. Bloco ou Instrução composta 
Consulte a seção II.B para uma descrição de blocos. 
IV.A.2. Instrução break 
A instrução break interrompe a execução de um bloco de controle. Esse bloco pode ser 
tanto um laço (seção IV.A.4.c) como um bloco de processamento condicional (switch – seção 
IV.A.3.b). Exemplos de seu uso são apresentados nessas duas seções. 
IV.A.3. Instruções de processamento condicional 
São instruções que permitem controlar o caminho de processamento em função de 
condições que são avaliadas durante o processamento (“run-time” ou tempo de execução). 
Existem duas instruções condicionais, apresentadas nas próximas subseções. 
As instruções condicionais podem ser aninhadas, ou seja, pode-se definir uma instrução 
condicional dentro de outra. 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.2 Segunda revisão / 2002 
 
IV.A.3.a. INSTRUÇÕES if E else IV.A.3.a 
A instrução if testa uma condição especificada e, no caso desta condição ser verdadeira 
(true), um bloco de instruções que segue a instrução if é executado. Se a condição especificada 
for avaliada como sendo falsa (false), então o bloco de instruções que segue a instrução else é 
executado. A instrução else não é obrigatória. 
 
Sintaxe : 
if (condição) 
{ // início do bloco do if 
// se a condição for avaliada como true (ou seja, uma expressão que resulta um 
// valor diferente de zero), o conjunto de instruções definidas no 
// interior do bloco que segue o if é executado 
} // fim do bloco do if 
else 
{ // início do bloco else 
// se a condição do if for avaliada como false (ou seja, uma expressão que 
// resulta um valor igual a zero), o conjunto de instruções definidas no 
// interior do bloco que segue o else é executado. 
// O else não é obrigatório. Se este não existir, o processamento continua a partir 
// da primeira instrução após as instruções do bloco if. 
} // fim do bloco else 
 
Observação: 
Se apenas uma instrução segue o bloco if (ou o bloco else), esta não precisa ser 
definida no interior de um bloco. No entanto, o bloco é imprescindível se mais de 
uma instrução deve ser executada em seqüência. 
 
Exemplo: 
int i; 
.......... // indica várias instruções 
if ( i < 2 ) cout << “\n i é menor que 2 \n”; 
else cout << “\n i é maior ou igual a 2 \n”; 
 
Se a expressão relacional ( i < 2 ) resulta true, então a instrução : 
cout << “\n i é menor que 2 \n” 
é executada, caso contrário a instrução que segue o else : 
cout << “\n i é maior ou igual a 2 \n” 
 é executada. Note-se que os blocos de instrução que seguem tanto o if como o else contêm 
somente uma instrução. Neste caso, os símbolos utilizados para delimitar blocos ({ }) não são 
necessários. No entanto, o programador não incorre em erro ao utilizá-los, como mostrado a 
seguir: 
int i; 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.3 Segunda revisão / 2002 
 
.......... // indica várias instruções 
if ( i < 2 ) 
{ 
cout << “\n i é menor que 2 \n”; 
} 
else 
{ 
cout << “\n i é maior ou igual a 2 \n”; 
} 
 
Exemplo: 
 
unsigned char mascara_controle = 0; // define um identificador para uma 
 // variável do tipo unsigned char 
 
mascara_controle = LeDadosControle(); // na função LeDadosControle são 
 // executadas instruções que podem 
 // resultar em diferentes valores para 
 // mascara_controle (por exemplo, pode 
 //estar sendo feita uma leitura 
 // de um instrumento numa instalação 
 // industrial. 
 
// o processamento a seguir depende do valor de mascara_controle 
if (!mascara_controle || mascara_controle > 3) // se mascara_controle é zero ou maior do 
 // que esta condição é avaliada como true. 
 LuzesVerdes(); // somente esta instrução é executada se a 
 // condição é true, portanto não foi 
 // definido um bloco com os símbolos { e } 
else 
{ 
 if (mascara_controle == 1) 
 { 
 AcionaAlarmeSonoro(); // executa função sem passar parâmetro 
 AcionaAlarmePainel(mascara_controle); // executa função passando a 
 // variável mascara_controle por valor. 
} // fim do bloco if (mascara_controle == 1) 
else 
{ 
if (mascara_controle == 2) 
{ 
 AcionaAlarmeSonoro(); 
 TravaPortasSeguranca(); 
} // fim do bloco if (mascara_controle == 2) 
else 
{ 
if (mascara_controle == 3) 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.4 Segunda revisão / 2002 
 
{ 
 AcionaAlarmeSonoro(); 
 TravaPortasSeguranca(); 
DesligamentoGeral(); 
} // fim do bloco if (mascara_controle == 3) 
 } // fim do bloco else de if (mascara_controle == 2) 
 } // fim do bloco else de if (mascara_controle == 1) 
} // fim do primeiro bloco else de if (!mascara_controle || mascara_controle > 3) 
 
Note que os blocos else apresentam, a rigor, uma única instrução (o if seguido de seu 
bloco de instruções).Nestas condições pode-se escrever o programa de uma forma muito mais 
simples de ler. No próximo exemplo é apresentado o mesmo trecho de código do exemplo 
anterior, escrito de forma mais legível. 
 
Exemplo: 
unsigned char mascara_controle = 0; // define um identificador para uma variável 
 // do tipo unsigned char 
 
mascara_controle = LeDadosControle(); 
 
// o processamento a seguir depende do valor de mascara_controle 
if (!mascara_controle || mascara_controle > 3) LuzesVerdes(); 
else if (mascara_controle == 1) 
{ 
 AcionaAlarmeSonoro(); // executa função sem passar parâmetro 
AcionaAlarmePainel(mascara_controle); // executa função passando a 
 // variável mascara_controle por valor. 
} // fim do bloco if (mascara_controle == 1) 
else if (mascara_controle == 2) 
{ 
AcionaAlarmeSonoro(); 
TravaPortasSeguranca(); 
} // fim do bloco if (mascara_controle == 2) 
else if (mascara_controle == 3) 
{ 
 AcionaAlarmeSonoro(); 
TravaPortasSeguranca(); 
DesligamentoGeral(); 
} // fim do bloco if (mascara_controle == 3) 
 
Desta forma, else if não corresponde a um novo comando, mas sim uma forma 
compacta de escrever o blocos else aplicando a regra de que não é necessário definir um bloco 
para uma única instrução. Estude esse exemplo atentamente. 
IV.A.3.b. INSTRUÇÃO switch (bloco de processamento condicional) IV.A.3.b 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.5 Segunda revisão / 2002 
 
A instrução switch testa a expressão de controle buscando uma igualdade. Os valores 
de teste da instrução switch são indicados em cláusulas case. Se o valor expresso em uma 
cláusula case é igual ao resultado da expressão de controle, a seqüência de instruções que 
segue o case é executada. O processamento termina quando uma instrução break é localizada 
ou no final do bloco do switch. 
A cláusula opcional default pode ser utilizada para especificar o processamento a ser 
realizado se nenhuma das cláusulas precedentes for satisfeita. 
 
Sintaxe : 
switch (expressao de controle) 
{ // aqui inicia o bloco do switch 
case valor1 : // se o resultado da expressão de controle for igual ao valor1 o 
 // conjunto de instruções que segue o case é executado. 
 // note os dois pontos no final da cláusula 
..... // conjunto de instruções que serão executadas se a expressão de controle for igual a valor1 
break; // esta instrução interrompe o processamento, desviando o 
 // fluxo de controle de execução para a primeira instrução após 
 // o bloco do switch. 
 // Se esta instrução não for incluída, o processamento segue 
 // executando as instruções da segunda cláusula, até encontrar 
 // uma instrução break. 
case valor2 : // esta é a segunda cláusula. O bloco de instruções que segue 
 // esta cláusula é executado se a expressão de controle resultou 
 // igual a valor2. (Novamente, observe o dois pontos 
 // obrigatório no final da cláusula) 
....... // aqui estão as instruções que seguem a segunda cláusula 
break; 
case valor3 : 
........... 
break; 
default : // esta é uma cláusula opcional. As instruções que seguem esta 
 // cláusula são executadas se o resultado da expressão de 
 // controle não coincide com os valores das cláusulas anteriores 
 // ou se deixou de existir uma instrução break no final da 
 //cláusula anterior. 
....... // aqui estão as instruções que seguem a cláusula default 
} // fim do bloco do switch 
 
Vamos repetir o exemplo da seção IV.A.3.a, utilizando, agora, a instrução switch. 
 
Exemplo: 
 
unsigned char mascara_controle = 0; // define um identificador para uma 
 // variável do tipo unsigned char 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.6 Segunda revisão / 2002 
 
 
mascara_controle = LeDadosControle(); // na função chamada neste ponto são 
 // executadas instruções que podem 
 // resultar em diferentes valores para 
 // mascara_controle (por exemplo, pode 
 // estar sendo feita uma leitura de um 
 // instrumento numa instalação industrial. 
 // o processamento a seguir depende do 
 // valor de mascara_controle 
switch (mascara_controle) 
{ 
case 1: 
 AcionaAlarmeSonoro(); // executa função sem passar parâmetro 
 AcionaAlarmePainel(mascara_controle); // executa função passando a variável 
 // mascara_controle por valor. 
break; // interrompe a execução do bloco do 
 // switch, saltando a execução para a 
 // primeira instrução após o bloco. 
case 2: 
 AcionaAlarmeSonoro(); 
 TravaPortasSeguranca(); 
case 3: // o conjunto de instruções a seguir é 
 //executado se mascara_controle é igual a 
 // 3 ou na sequencia das instruções do case 
 // 2, uma vez que não foi incluida a 
 // instrução break após a execução de 
 // TravaPortasSeguranca().DesligamentoGeral(); 
break; 
default : // se mascara_controle é diferente de 1, 2 e 3 
 LuzesVerdes(); 
} // fim do bloco do switch 
 
Observação: 
A seqüência de instruções do exemplo acima parece complicada. No entanto, com a 
eliminação dos comentários o código resulta: 
 
unsigned char mascara_controle = 0; 
 
mascara_controle = LeDadosControle(); 
switch (mascara_controle) 
{ 
case 1: 
 AcionaAlarmeSonoro(); 
 AcionaAlarmePainel(mascara_controle); 
break; 
case 2: 
 AcionaAlarmeSonoro(); 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.7 Segunda revisão / 2002 
 
 TravaPortasSeguranca(); 
case 3: 
 DesligamentoGeral(); 
break; 
default : 
 LuzesVerdes(); 
} // fim do bloco switch 
 
IV.A.4. Instruções de repetição 
São instruções que permitem executar um bloco de instruções repetidas vezes. As 
instruções são repetidas enquanto uma expressão fornecida for avaliada como true (qualquer 
valor diferente de zero). 
Existem três instruções de laço em C e C++ conforme mostrado na tabela IV.1: 
• do .....while, 
• while, e 
• for 
as quais serão apresentados nas subseção a seguir. As instruções de laço podem ser aninhadas, 
ou seja, pode-se definir um laço dentro de outro laço. 
IV.A.4.a. INSTRUÇÃO DE REPETIÇÃO do ... while 
A instrução do inicia um laço cuja execução é testada no final do laço, após sua 
primeira execução. A cláusula while especifica a condição para execução do laço. O 
processamento do laço continua enquanto a expressão especificada é avaliada como true. 
 
Sintaxe: 
do 
{ 
..... // conjunto de instruções que devem ser repetidas enquanto a expressão é avaliada true 
} while (expressão) ; // fim do laço do –while. Observe o uso do caracter de 
 // terminação de instrução “;” 
 
 
Exemplo: 
#include <iostream.h> 
void main(void) 
{ 
short int i, valor; 
long int fatorial = 1; 
cout << “\n entre com o valor para calculo do fatorial: “; 
cin >> valor; 
i = valor; 
if (i >= 0) 
{ 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.8 Segunda revisão / 2002 
 
do 
{ 
fatorial *= i; // observe o uso do operador de atribuição composto *= 
i--; 
} while ( i ); // fim do bloco 
cout << “\n \a O fatorial de “<< valor << “ e : “ << fatorial << “\n”; 
} // fim do bloco if (i>=0) 
else // não calcula o fatorial para valores negativos 
cout << “\n \a Valor negativo! Fatorial não calculado\n”; 
 
} // fim do bloco de definição da função main 
 
Exercício: 
Verifique se o exemplo acima contempla o caso de fatorial de 0 (fatorial de zero 
resulta 1). Se a resposta é negativa, modifique o programa de modo a contemplar esta 
situação. Além disso escreva o programa de forma um pouco mais compacta, utilizando 
seu conhecimento do modo de operação do operador unário --. Finalmente, por que foi 
utilizada a variável valor? 
IV.A.4.b. INSTRUÇÃO DE REPETIÇÃO while 
A instrução while inicia um laço cuja execução é testada antes de sua primeira 
execução. O processamento do laço continua enquanto a expressão especificada é avaliada 
como true. 
 
Sintaxe: 
while (expressão) 
{ 
..... // conjunto de instruções que devem ser repetidas enquanto a expressão é avaliada true 
} // fim do laço while 
 
 
Exemplo: 
#include <iostream.h> 
void main(void) 
{ 
short int i, 
 valor; 
long int fatorial = 1; 
cout << “\n entre com o valor para calculo do fatorial: “; 
cin >> valor; 
i = valor; 
while ( i ) 
{ 
fatorial *= i; // observe o uso do operador de atribuição composto *= 
i--; 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.9 Segunda revisão / 2002 
 
} // fim do bloco 
cout << “\n \a O fatorial de “<< valor << “ e : “ << fatorial << “\n”; 
} // fim do bloco de definição da função main 
 
Exercício: 
Verifique se o exemplo acima contempla o caso de fatorial de 0 (zero). 
Modifique o programa para que o usuário possa calcular o fatorial de vários números, 
interativamente, e possa encerrar o programa com o acionamento da tecla f (maiúscula 
ou minúscula). 
IV.A.4.c. INSTRUÇÃO DE REPETIÇÃO for IV.A.4.c 
A instrução for inicia um laço iterativo. As condições iniciais para o laço, a expressão 
utilizada para avaliar se a execução do laço é autorizada e o processamento a ser executado no 
laço podem ser especificados na instrução for. 
O processamento do laço continua enquanto a expressão especificada é avaliada como 
true. 
Um laço for sem quaisquer operandos é um caso especial, o qual inicia um laço sem 
fim. 
 
 
Sintaxe: 
for (inicialização; condição; instruções iterativas) 
{ 
..... instruções do bloco // conjunto de instruções que devem ser repetidas 
 // enquanto a condição é avaliada true 
} // fim do laço for 
onde: 
inicialização : especifica um conjunto de instruções, separadas pelo caracter vírgula, 
avaliadas antes do laço for ser iniciado. Instruções de inicialização 
podem ser omitidas. 
condição : uma expressão que, se avaliada true (valor diferente de zero), autoriza a 
execução do laço. A cláusula de condição pode ser omitida, mas não o 
caracter ; . Se a cláusula é omitida a condição é avaliada como true. 
instruções iterativas : especifica instruções que devem ser executadas ao término de 
cada ciclo do laço. De mesma forma que nas instruções de inicialização, 
várias instruções iterativas podem ser especificadas, separadas pelo 
caracter ,. Instruções iterativas podem ser omitidas. 
instruções do bloco : especifica as instruções que são processadas repetidamente. Uma 
instrução nula (representada por um ponto e virgula ;) pode ser utilizada 
se nenhum processamento é necessário. 
 
 
Exemplos: 
 
Note o caracter ; separando os três componentes 
da instrução for 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.10 Segunda revisão / 2002 
 
// neste exemplo, as variáveis i e j são inicializada na instrução for; 
// a condição para execução do laço é que i seja menor ou igual a 8 e , 
// na cláusula de instruções iterativas a variável i é incrementada 
// O laço permite a soma dos primeiros oito números naturais 
for ( i = 1, j = 0; i <= 8; i++) 
{ 
 j += i; // observe o uso do operador de atribuição composto += 
 cout << i << ‘\n’; 
} 
cout << j<<’\n’; 
 
// este exemplo também permite a soma dos primeiros oito números naturais, mas 
// não é utilizado um bloco de instruções. A instrução for é terminada com uma instrução nula 
// ou seja o laço é terminado por um ;. Compare com o exemplo anterior. 
for ( i = 1, j = 0; i <= 8; i++, j += i); 
cout << j<<’\n’; 
 
// no exemplo é apresentado um laço sem fim 
// note-se que as cláusulas de instruções de inicialização, a de condição, e a de iteração não são 
// especificadas, mas os ponto e vírgula continuam sendo apresentados, separando as cláusulas 
// vazias. 
for ( ; ; ); 
 
// Um exemplo que utiliza a instrução break para interromper um laço for 
int i, j; 
for (i =1; i < 10; i++) 
{ 
 if ( i % 2 == 0 ) break; // interrompe o laço externo no qual i é testado 
 // outra forma de escrever esta instrução é:// if ( !( i % 2 )) break; 
// este é um bloco aninhado com apenas uma instrução 
 for ( j = 1 ; j < 3 ; j++) cout << i << “ “ << j << ‘\n’; 
 
} // fim do laço for (i) 
 
// No exemplo a seguir é calculado o fatorial de um número 
 
#include <iostream.h> 
void main(void) 
{ 
short int i, 
 valor; 
long int fatorial = 1; 
cout << “\n entre com o valor para calculo do fatorial: “; 
cin >> valor; 
for(i = valor; i ; i-- ) fatorial *= i; // há apenas uma instrução no bloco. Os caracteres 
 //de delimitação de bloco { e } podem ser omitidos. 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.11 Segunda revisão / 2002 
 
cout << “\n \a O fatorial de “<< valor << “ e : “ << fatorial << “\n”; 
} // fim do bloco de definição da função main 
 
// Novamente, o cálculo do fatorial de um número utilizando uma instrução for seguida por uma 
// instrução nula 
 
#include <iostream.h> 
void main(void) 
{ 
short int i, 
 valor; 
long int fatorial = 1; 
cout << “\n entre com o valor para calculo do fatorial: “; 
cin >> valor; 
for(i = valor; i ; fatorial *= i, i-- ); // laço terminado com instrução nula. Todo o 
 // processamento é efetuado na cláusula de 
 // instruções iterativas. 
cout << “\n \a O fatorial de “<< valor << “ e : “ << fatorial << “\n”; 
} // fim do bloco de definição da função main 
 
 
Exercício: 
Verifique se o exemplo acima contempla o caso de fatorial de 0 (zero). 
Modifique o programa para que o usuário possa calcular novos fatoriais, 
interativamente, e possa encerrar o programa com o acionamento da tecla f (maiúscula 
ou minúscula). Use um laço for para incluir essa funcionalidade ao programa. 
IV.A.5. Outras instruções 
IV.A.5.a. INSTRUÇÃO continue 
Sintaxe: 
continue; 
 
A instrução continue interrompe a iteração corrente de um laço. Contudo, ao contrário 
do que ocorre com a instrução break, o laço continua sendo executado, iniciando uma nova 
iteração. 
 
Exemplo: 
 
Imprime a seqüência dos quadrados impares dos números de 1 a 10.. 
 
int i; 
int quadrado; 
for (i = 1; i <= 10; i++) 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.12 Segunda revisão / 2002 
 
{ 
 quadrado = i * i; 
 if ( !(quadrado % 2)) continue; 
 cout << “o quadrado de “<< i << “ é : “<< quadrado << ‘\n’; 
} // fim do laço for (i) 
 
Exercícios: 
Explique se o parênteses envolvendo a expressão (quadrado % 2) é necessário. 
Escreva um programa equivalente sem usar a instrução continue. 
IV.A.5.b. INSTRUÇÃO goto 
Esta instrução causa o desvio de execução para uma instrução com o rótulo (label) 
especificado. 
 
Sintaxe: 
goto rotulo; 
 
Exemplo: 
 
int i; 
for (i = 1; i <= 10; i++) 
{ 
 if ( (i == 8) goto a1; // desvia o processamento para a 
 // instrução que apresenta o 
 // rótulo a1 
 cout << “o quadrado de “<< i << “ é : “<< (i * i) << ‘\n’; 
} // fim do laço for (i) 
return 0; 
a1: return 8; // a instrução return 8 apresenta o rotulo a1 
 
Observação : 
As regras modernas de programação estruturada (engenharia de software) 
desestimulam o uso de desvios incondicionais, no caso do C e C++ implementado 
por meio da instrução goto. De fato, seu uso impõe dificuldades principalmente na 
fase de manutenção de software (entenda-se aqui manutenção como correção de 
erros e modificações do programa impostas por mudanças de requisitos de 
software). 
 
IV.A.5.c. INSTRUÇÃO return 
Esta instrução causa o retorno explícito de uma função. Se a função retorna um valor 
(ver a declaração de função na seção II.D) este valor é apresentado no comando return. O valor 
APOSTILA: LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Angelo Passaro Página IV.13 Segunda revisão / 2002 
 
de retorno sofre a ação de um operador cast (seção III.D.3) para o tipo especificado na 
declaração da função. 
 
Sintaxe : 
return valor_retorno; 
 
 
O final de uma função causa a execução de um return implícito.

Outros materiais