Você está na página 1de 11

Estruturas de Controle em Java | Nao Livre

1 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

A Independncia do Desenvolvimento na Liberdade do Open Source

Home
Webtools
Downloads
Vdeos
Biblioteca Online
Quem Somos
Parceiros
Fale Conosco
Pgina Inicial Java Estruturas de Controle em Java

Estruturas de Controle em Java


12, abril, 2010 Fernando Deixar um comentrio Ir para os comentrios
Ao construir uma aplicao, ver a necessidade de controlar o fluxo do sistema, blocos de instrues para
solucionar um determinado problema.
Essa necessidade de controle deve-se ao fato de o fluxo poder se repetir ou em determinadas
circunstancias nem mesmo precisar ser executado. Para isso temos as estruturas de controle que podem
nos dar repeties simples, repeties condicionais e desvio de fluxo.
Em java existem alguns comando para efetuar controle de fluxo que so:
for
while
do while
if else
switch
break
continue
try
catch
finally
1.0 Comando for
O comando for possui trs parmetros de controle, sendo todos opcionais e separados por ponto e
virgula e delimitados por parnteses. Aps a estrutura condicional declarada vem o bloco de execuo.

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

2 de 11

1
2
3
4
5

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

for ( [ incio ]; [condio]; [incremento/decremento] ){


...
/* bloco de execuo aqui */
...
}

Exemplo
1
2
3
4
5
6
7
8
9

public class Exemplo1 {


public static void main( String args[] ){
int x;
for ( x = 1; x <= 15; x++ ){
System.out.println( x );
}
}
}

A saida do cdigo acima, aps compilado e executado, dever ser uma exibio de nmeros de 1 at 15 de
acordo com as condies que passamos para a estrutura de controle, para x igual a 1 (um); enquanto x for
menor ou igual a 15(quinze); x incrementar( ou seja x ser igual a x mais 1(um) ).
Temos ainda a estrutura for para otimizar arranjos e colees onde sua sintaze :
1
2
3
4
5

for ( [Tipo] <variavel> : <expresso> ){


...
/* bloco de execuo aqui */
...
}

Exemplo
1
2
3
4
5
6
7
8
9

public class Exemplo2 {


public static void main( String args[] ){
int vetor[] = {1, 4, 35, 10, 335, 675, 20, 50, 49, 6};
for ( int x : vetor ){
System.out.println( x );
}
}
}

A saida do cdigo acima, aps compilado e executado, dever ser uma exibio dos nmeros inteiros do
arranjo com nome vetor. esta estrutura otimiza a interao no arranjo ou coleo passada para a
espresso podendo ser efetuada a navegao sem a necessidade de ndices ou interadores.
2.0 Comando while
A comando while executado enquanto a condio passada como parmetro for verdadeira, vejamos:
1
2
3

while( [condio] ){
...
/* bloco de execuo aqui */

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

3 de 11

4
5

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

...
}

Exemplo
1 public class Exemplo3 {
2
public static void main( String args[] ){
3
int n = 10;
4
5
while( n > 0 ){
6
System.out.println( n );
7
n--;
8
}
9
}
10 }
Reparem que while executa o bloco de cdigo enquanto n for maior que zero, como internamente
estmos decrementando n haver dez iteraes sendo executadas exibindo valores de nmeros inteiros de
10(dez) a 1(um) na tela como saida do programa.
3.0 Comando do while
A comando do while tem pelo menos uma iterao sendo executada pelo bloco de cdigo a ele
denominado tendo como condio verificada ao final como parametro passado para while
1
2
3
4
5

do{
...
/* bloco de execuo aqui */
...
}while( [condio] );

Exemplo
1 public class Exemplo4 {
2
public static void main( String args[] ){
3
int n = 10;
4
5
do {
6
System.out.println( n );
7
n += 10;
8
}while( n < 10 );
9
}
10 }
Reparem que do while executa o bloco de cdigo enquanto n for menor que 10(dez). O programa
imprimira na tela apenas uma sada, o valor 10(dez) e em seguida abandonar o bloco de execuo pois a
condicional n menor que 10(dez) impedir tal continuao.
Comando if else
Os comando if e else, podem desviar o fluxo do sistemas baseando-se em condicionais lgicos
passados como parametros sendo verdadeiros ou falsos dependendo da expresso a eles denominados.

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

4 de 11

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

if( [condio 1] ){
...
/* bloco de execuo aqui */
...
if( [condio 1] ){
...
/* bloco de execuo aqui */
...
}else if( [condio 2] ){
...
/* bloco de execuo aqui */
...
}else{
...
/* bloco de execuo aqui */
...
}
}else if( [condio 2] ){
...
/* bloco de execuo aqui */
...
}else{
...
/* bloco de execuo aqui */
...
if( [condio 1] ){
...
/* bloco de execuo aqui */
...
}else {
...
/* bloco de execuo aqui */
...
}
}

Exemplo
1 public class Exemplo5 {
2
public static void main( String args[] ){
3
String name = "Nao Livre";
4
5
if( ! name.equals( "Nao" ) ){
6
int size = name.length;
7
8
System.out.println( "Meu nome : " + name );
9
10
if( size > 0 ){
System.out.println( "variavel 'name' com tamanho: " +
11
String.parseString( size ) +
12
" - bytes" );
13

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

5 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

14
}
15
16
System.exit( 0 );
17
18
}else if( ! name.equals( "Nao Livre" ) ){
19
System.out.println( "Meu nome Nao Livre !!!" );
20
System.exit( 0 );
21
22
}else{
23
System.out.println( "Quem Sou eu ?" );
24
System.exit( 0 );
25
}
26
}
27 }
O cdigo acima exibe a mensagem Meu nome : Nao Livre, variavel name com tamanho: 11
bytes e logo em seguida encerra a aplicao. veja que podemos aninhar vrios desvios condicionais e
ainda colocar novos desvios condicionais dentro dos blocos if e else.
Comando switch
O comando switch possui um desvio condicional de multiplos casos de iteraes baseando-se em sua
expresso como denominadora do bloco de execuo.
1 switch( [ critrio de entrada ] ){
2
case [ caso 1 ]:
3
...
4
/* bloco de execuo aqui */
5
...
6
break;
7
8
case [ caso 2 ]:
9
...
10
/* bloco de execuo aqui */
11
...
12
break;
13
14
case [ caso N ]:
15
...
16
/* bloco de execuo aqui */
17
...
18
break;
19
20
default:
21
...
22
/* bloco de execuo aqui */
23
...
24
break;
25 }
Exemplo

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

6 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

1 public class Exemplo6 {


public static void main( String args[] ){
2
3
if( args.length() > 0 ){
4
switch( args[ 0 ].charAt( 0 ) ){
5
case 'a':
6
System.out.println( "Voc digitou a letra 'a'." );
7
break;
8
9
case 'b':
10
System.out.println( "Voc digitou a letra 'b'." );
11
break;
12
13
case 'c':
14
System.out.println( "Voc digitou a letra 'c'." );
15
break;
16
17
default:
18
System.out.println(
19
"Somente as letras [a|b|c] so aceitas."
20
);
21
break;
22
23
}
24
}else {
25
System.out.println(
26
"Entre com um valor na linha de comando !!!"
27
);
28
}
29
}
30 }
Comando break
O comando break, interrompe o fluxo normal do bloco de cdigo em execuo como switch, for e
tambm while e do while.
1
2
3
4
5
6
7

for( x = 10; x < 20; x++ ){


if( x == 15 ){
break;
}
System.out.println( x );
}

O cdigo acima executado imprimir os valores de 10 (dez) at 14 (quatorze) e quando x for igual a 15
(quinze) a estrutura de repetio for ser interrompida no dando sequncia a sua execuo.
Comando continue
O comando continue, interrompe o fluxo normal do bloco de cdigo em execuo como switch, for
e tambm while e do while.

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

7 de 11

1
2
3
4
5
6
7

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

for( x = 0; x < 100; x++ ){


if( x == 25 || x == 50 || x == 75 || x == 99 ){
continue;
}
System.out.println( x );
}

O cdigo acima ao ser executado imprimir valores de 0 (zero) at 99 (noventa e nove), menos os valores
25 (vinte e cinco), 50 (cinquenta), 75 (setenta e cinco) e o nmero 99 noventa e nove, pois a condicional
da estrutura de controle de fluxo if, faz com que seja feito um salto na estrutura de repetio for,
fazendo assim com que os valores citados no seja exibidos na tela.
try, catch, finally, throw
A estrutura de controle de fluxo de cdigo no java ainda oferece try, catch e finally que efetua tratamento
de excees disparados pelo sistema e sendo tratados pelo seu respectivo tipo de erro detectado.
Os comando try e catch trabalham juntos para delimitar a rea de cdigo a ser verificada e capturar a
exceo ocorrida e desviando o fluxo natural do cdigo para um tratamento especifico do tipo de dados
disparado. Ainda podemos utilizar finally para garantir que sempre seja executado um determinado
cdigo ao final de try e catch.
Sendo assim, quando queremos provocar uma exceo, podemos disparar utilizando o comando throw
para saltar o fluxo natural para a captura por catch.
Exemplo 7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

/**
*
* @author Nao Livre
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
int x = 10, y = 0;
int r = x / y;
System.out.println( v );
}
catch( Exception ex ){
System.out.println( "Excetion: " + ex.getMessage() );
}
}
}

Quando compilar e executar o cdigo acima, ir obter a seguinte saida: Exception: / by zero. Reparem
que foi declarado um tipo genrico de dados Exception que captura genericamente excees disparadas

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

8 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

pelo sistema assim como poderia ter usado aqui ArithmeticException para capturar a exceo de
aritmtica .
1 import java.sql.*;
2
3 public class MySQLConnect {
public static void main (String args[] ){
4
5
Connection conn = null;
6
7
try{
8
String username = "nacaolivre";
9
String password = "senha54321";
10
String url = "jdbc:mysql://localhost:3306/my_database/";
11
12
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
13
conn = DriverManager.getConnection (url, username, password);
14
15
System.out.println ("Sucesso na conexo !!!");
16
}
17
catch (Exception ex){
18
System.err.println (
19
"Erro estabelecendo conexo com o banco de dados !!!"
20
);
21
}
22
finally{
23
if (conn != null) {
24
try {
25
conn.close ();
26
}
27
catch (Exception e) {
28
// ...
29
}
30
}
31
}
32
}
33 }
Aqui reparem que foi incluido o comando finally juntamente com try e catch, ele verifica se a
variavel conn que um tipo de dado Connection, est conectado ao banco de dados, caso isto seja
verdadeiro o mtodo close chamado para finalizar a conexo com o servidor de banco de dados
MySQL. Veja que finally sempre ser executado mesmo se a exceo for lanada por try.
As estruturas de controle de fluxo de cdigo esto presentes em todas as linguagens de programao
existentes, pois sem elas seria doloroso construir sistemas aplicativos tanto para desktop como para a web.
Elas nos do maneiras de estruturar um sistema minimizando cdigo fonte e tornando-os mais inteligentes.
isso ai, espero que tenham gostado.
Categories: Java Tags: catch, do while, Estrutura de Controle, finally, for, if else, switch, try, while

Postagens Relacionadas

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

9 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

Estruturas de Controle em Python


Comando para repetio de cdigo (while / until / for)
Convenes de Cdigo Java
Introduo ao Java
Graphics2D em Applet Java
Comentrios (4) Trackbacks (0) Deixar um comentrio Trackback
1.
Bernabe Rofino Gabriel
1, outubro, 2012 em 08:48 | #1
Resposta | Citao
adorei da aula, espero poetem mais material no meu endereco electronico, pois sou um apaixonado
do java.
2.
mario
18, junho, 2014 em 05:11 | #2
Resposta | Citao
Gostei da aula e peo mais dicas do Java, pois sou um iniciante em Java e na programao em geral
3.
Juliana
22, fevereiro, 2015 em 15:12 | #3
Resposta | Citao
Muito bom, seus exemplos me ajudaram muito a entender como as coisas funcionam nas estruturas
de controle.
4.
Micas
11, maro, 2015 em 11:34 | #4
Resposta | Citao
Gostei da esplicaao, foi muito breve e directa espero receber material no meu endereo electronico
1. Nenhum trackback ainda.

Deixe seu Comentrio !


Nome (obrigatrio)
E-Mail (no ser publicado) (obrigatrio)
Website

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

10 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

Inscrever no feed de comentrios


Plugin WC-Comments para WordPress Convenes de Cdigo Java

Newsletter

Receba os Nossos Informativos por E-mail:

Categorias
Algoritmos
C++
CSS
Gnome
Java
Javascript
Linux
Notcias
Open Source
PHP
Plugins Wordpress
Python
Servidor
Shell Script
UML
Wordpress

Tags
Acesso

Apache Applet Backup bash Comando Comandos Comentrios Compilao

Configurao csh Cdigo Fonte Desenvolvedor

Executavel finally

for Funes htaccess if

01/09/2015 16:46

Estruturas de Controle em Java | Nao Livre

11 de 11

http://www.nacaolivre.com.br/java/estruturas-de-controle-em-java/

Instalao Introduo jQuery ksh Linguagem MySQL Mtodos Netbeans Objeto Permisses private Programao
public

Script Security Segurana Servidor Servio sh Shell Sistema SSH Terminal Terminal Remoto try while

Lista de Links
Apache
Debian
Fedora
Gnome
Java
KDE
Linux Kernel
MySQL
Netbeans

01/09/2015 16:46

Você também pode gostar