1 - Considera��es Gerais Na linguagem C, por n�o termos um tipo de dado booleano, uma express�o � considerada falsa quando retornar 0 e verdadeira qundo retorna qualquer outro valor. Qualquer condi��o em C deve estar entre par�nteses. Delimitadores de Bloco As chaves {} s�o usadas como delimitadores, substituindo o begin e o end do Pascal. Terminador de Comandos O ponto r v�rgula ";" funcionar� como um terminador de comandos e n�o como um separador de comandos, sendo assim, ele aparecer� sempre que precisarmos terminar um comnado, n�o tendo nenhuma restri��o se ap�s ele vem um else ou um delimitador de final de bloco. 2 - Sele��o 2.1) If: Com dois processamentos alternativos. Forma Geral: if (< condi��o >) < bloco 1 > else < bloco 2 > Considera��es: - Se o resultado de condi��o for igual a zero o bloco 2 ser� executado, se for qualquer valor diferente de zero, ser� executado o bloco 1. - Cada bloco de comandos pode ser constitu�do de um ou mais comandos de qualquer tipo, incluindo o pr�prio if. - O else � opcional (caso n�o haja cl�usula sen�o, ele n�o necessita ser usado). - No caso de m�ltiplos if's aninhados, o else sempre se associa ao if imediatamente mais pr�ximo. Ex 1: if (x == y) printf("igual"); else printf("diferente"); Ex 2: if (z) { x +=y; z = x; } 2.2) Switch: Com m�ltiplos processamentos alternativos Forma Geral: switch (< express�o >) { case < valor 1 >: {< bloco 1 >} case < valor 2 >: {< bloco 2 >} case < valor 3 >: {< bloco 3 >} case < valor n >: {< bloco n >} default: {< bloco x >} } Considera��es: - Uma �nica condi��o (express�o) � avaliada e seu valor comparado com os valores dos casos. - Poder�amos ter o mesmo processamento utilizando if's aninhados. - Cada case possui um valor ou express�o constante. - O "default" � opcional, correspondente ao else do if. - O switch n�o � mutuamente exclusivo. O resultado da express�o � comparado com os valores existentes nos CASE's e todos os valores iguais encontrados s�o executados. - Para que o switch se torne mutuamente exclusivo � necess�rio ap�s o bloco de comandos de cada case incluir o comando BREAK, que desvia a execu��o do algoritmo para o pr�ximo comando ap�s a estrutura switch. switch (< express�o >) { case < valor 1 >: {< bloco 1 > break;} case < valor 2 >: {< bloco 2 > break;} case < valor 3 >: {< bloco 3 > break;} case < valor n >: {< bloco n > break;} default: {< bloco x >} } Ap�s o bloco de comandos do default n�o � necess�rio o break, visto que n�o existe outro bloco ap�s ele. Se o resultado da express�o n�o for igual a nenhum dos valores listados nos cases, o bloco correspondente ao default ser� executado. 3 - Repeti��o 3.1) While: O n�mero de repeti��es n�o � conhecido e o bloco de comandos pode nunca ser executado. Forma Geral: While (< condi��o >) < bloco > Considera��es: - O bloco � executado enquanto a condi��o for verdadeira (ou seja, diferente de 0). Ex: while (x < y) { x++; printf("teste"); } 3.2) Do: O n�mero de repeti��es n�o � conhecido e o bloco de comandos � executado pelo menos uma vez. Forma Geral: do < bloco > While < condi��o > Considera��es: - O bloco � executado enquanto a condi��o for verdadeira (ou seja, diferente de 0). - O bloco � executado ao menos uma vez. Ex: do { x++; printf("teste"); } while ( x < y ) 3.3) For: O n�mero de repeti��es � conhecido. Forma Geral: for ( < express�o 1 > ; < express�o 2 > ; < express�o 3 > ) < bloco > Considera��es: - express�o 1: inicializa a vari�vel de controle e � executada uma �nica vez, antes da execu��o do bloco. - express�o 2: teste da condi��o e � executada tantas vezes quantas forem as repeti��es, antes da execu��o do bloco. - express�o 3: incremento da vari�vel de controle e � executada tantas vezes quantas forem as repeti��es, depois da execu��o do bloco. Ex: Se quis�ssemos repetir um determinado bloco de comandos 10 vezes, as estruturas utilizadas seriam as seguintes: for( i = 1; i <= 10; i++ ) printf("%d",i); |