Vous êtes sur la page 1sur 23

Curso de Java

Jess Cceres Tello Pg. 1 - 23














TEMA 2

Estructuras bsicas en Java


Comentarios


Existen tres formas de comentar el cdigo en Java:

Comentario en una lnea: //Comenta una lnea
Comentar una o ms lneas

/*Estas dos lneas
estn comentadas */

Comentarios usados para documentacin automtica (javadoc)

/** Este comentario es usado por javadoc para generar
documentacin automtica */

















Ejemplo 2.1: Comentando un programa en Java
/************************************************
* Esta aplicacin visualiza Hola desde Java!
* Autor: Jess Cceres
* Importaciones: ninguna
*Parmetros: argumentos de la lnea de comandos
* Retorno: ninguno
* Fecha de creacin: 1/1/05
* ltima actualizacin: 1/10/06
***********************************************/

public class HolaJava {

public static void main(String[] args) {
System.out.println(Hola desde Java!);
}



Curso de Java




Jess Cceres Tello Pg. 2 - 23


Tipos de datos

En Java toda variable declarada ha de ser de un tipo, adems, antes de poder
utilizarla se ha de inicializar a un valor, si no es as, el compilador no generar el
fichero .class. Java es ms particular para mantener la integridad de los tipos que
C++, por ejemplo; en C++ se puede asignar un nmero en coma flotante a un
entero ya que C++ gestiona la conversin de tipos. En Java se tienen que utilizar
las tcnicas de conversin de tipos.


Enteros

Almacenan como su propio nombre indica nmeros enteros, sin parte decimal. Por
razones de portabilidad todos los datos en Java tienen el mismo tamao y formato.
En Java hay cuatro tipos de enteros:


Tipo Tamao (bytes) Rango
Int 4 -2147483648 al
2147483647
Short 2 -32768 al
32767
Long 8 -9223372036854775808 al
9223372036854775807
Byte 1 -128 al
127

Para indicar que una constante es de tipo long lo indicaremos con una L: 23L


Reales

Almacenan nmeros reales, es decir nmeros con una parte fraccionario.
Hay dos tipos:


Tipo Tamao (bytes) Rango
Float 4 +3.40282347E+38
Double 8 +179769313486231570E+308

Para indicar que una constante es flotante: ej. 2.3 se ha de escribir: 2.3F, por
defecto ser double.






Curso de Java




Jess Cceres Tello Pg. 3 - 23

Carcter

En Java hay un nico tipo de carcter: char. Cada carcter est codificado en
formato Unicode, en este formato cada carcter ocupa 2 bytes, frente a la
codificacin ASCII, donde cada carcter ocupa un solo byte, dando cabida a 256
smbolos distintos. Con esa cantidad de caracteres no se puede soportar algunos
alfabetos como el chino, japons o ruso, para lo cual se cre el formato Unicode.
Al igual que en C se distingue entre la representacin de los datos char y los de
cadenas de caracteres. Los primeros, los char, van entre comillas simples: char
ch=a; mientras que las cadenas de caracteres usan comillas dobles.


Boolean

Es un tipo de datos que nicamente puede tomar dos valores: true o false. Se
utiliza para realizar chequeos sobre condiciones


Las Variables

En Java, al igual que en C, es obligatorio declarar los tipos de todas las variables
empleadas. La sintaxis de declaracin es la siguiente:

int i; double d; foat f; char c;

Adems en Java es necesario inicializar todas las variables antes de usarlas, de lo
contrario el compilador generar un mensaje de error. Se puede inicializar y asignar
un valor a una variable en la misma lnea o en lneas diferentes:

int i=0; int i;
i = 0;

Tambin es posible la declaracin mltiple de variables en una nica lnea:

int i,j,k;



Conversin automtica entre los tipos de datos.

Cuando se asigna un tipo de datos a una variable de otro tipo, Java convertir el
dato al nuevo tipo de variable de forma automtica siempre que se cumplan las
siguientes condiciones:

Los tipos de datos y de las variables son compatibles
El tipo de destino tiene un rango mayor que el de origen

Este tipo de conversin se llama extensin de conversiones. La jerarqua de
conversiones va de mayor a menor, es decir:

double << float << long <<int << short << byte



Curso de Java




Jess Cceres Tello Pg. 4 - 23

Es posible convertir un dato de jerarqua superior a uno de jerarqua inferior,
pudiendo producirse una prdida de informacin en el cambio. Este tipo de
operacin (almacenar el contenido de una variable de jerarqua superior en una de
jerarqua inferior) se denomina cast o casting. El cast o casting recibe el nombre
de estrechamiento de conversin. En este caso hay una prdida de precisin
en la conversin y Java no lo hace automticamente. El formato de un cast es el
siguiente:




este otro caso lo que se produce es una reduccin de la Veamos un ejemplo:





















Ejemplo 2.2: Ejemplo de utilizacin del cast para cambio de tipos de datos.


Operadores

Los operadores bsicos de Java son + , - , * , / para la suma, resta, multiplicacin
y divisin. El operador / representa la divisin de enteros si ambos operandos son
enteros. Su mdulo, es decir, el resto de la divisin, puede obtenerse mediante el
operador %.

Adems existen los operadores de incremento y decremento: ++ y --. La operacin
que realizan es la de incrementar y decrementar en una unidad a la variable a la
que se aplican. Su accin es distinta segn se apliquen antes (++a) o despus
(a++) de la variable.

public class ejemplo2 {

public static void main(String[] args) {
int i = 9,k;
float j = 47.9F;
prt(i: + i + j: + j);
k = (int)j; //empleo de un cast
prt(j: + j + k: + k);
j = k; //No necesita cast
prt(j: + j + k: + k);
float m = 2.3F;
//float m = 2.3; dara un error al compilar
prt(m: + m);
}

static void prt(String s) {
System.out.println(s);
}
}

(tipo de dato de destino) valor


Curso de Java




Jess Cceres Tello Pg. 5 - 23


public class ejemplo3 {

public static void main(String[] args) {
Int i = 1;
prt(i: + i);

//Pre-incremento. Primero incrementa y despus imprime en consola
prt(++i : + ++i);

//Post-incremento. Primero imprime en consola y despus incrementa i
prt(i++ : + i++);

//Pre-decremento. Primero decrementa y despus imprime en consola
prt(--i : + --i);

//Post-decremento. Primero imprime en consola y despus decrementa i
prt(i-- : + i--);

//Por ltimo se imprimir i con valor 1
prt(i : + i);
}

//El siguiente mtodo nos ahorrar teclear e invocndolo a la impresin por pantalla
static void prt(String s) {
System.out.println(s);
}
}


Ejemplo 2.3: Ejemplo de operadores de incremento y decremento

Exponenciacin

En Java no existe el operador de exponenciacin. Tampoco existen operadores
como Seno o Coseno. Para realizar estas operaciones se recurre a la clase Math de
Java.lang. Estos mtodos son estticos, por lo que no es necesario crear un objeto
de dicha clase. Su sintaxis es la siguiente:

















Ejemplo 2.4: Ejemplo utilizacin de la clase Math de Java.lang

Math.metodo(argumentos);

public class ejemplo4 {

public static void main(String[] args) {
int i = 45, j=2;
//Imprime por consola los resultados
prt(Cos i : + Math.cos(i));
prt(Sen i : + Math.sin(i));
prt(j ^ i : + Math.pow(j,i));
}

static void prt(String s) {
System.out.println(s);
}
}



Curso de Java




Jess Cceres Tello Pg. 6 - 23


Operadores Lgicos


Operador Operacin que realiza
! Not lgico
== Test de igualdad
!= Test de desigualdad
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
&& And lgico
|| Or lgico


























Ejemplo 2.5: Ejemplo de operadores de incremento y decremento
public class ejemplo5 {

public static void main(String[] args) {
int i = 45, j=2;
//Imprime i y j por consola
prt(i : + i);
prt(j : + j);

//Imprime diversas operaciones binarias sobre i y j, junto con el resultado de
stas.
prt(i > j es + (i>j));
prt(i < j es + (i<j));
prt(i >= j es + (i >= j));
prt(i <= j es + (i <= j));
prt(i == j es + (i == j));
prt(i != j es + (i != j));

prt((i < 10) && (j<10) es + ((i < 10) && (j<10)) );
prt((i < 10) || (j<10) es + ((i < 10) || (j<10)) );
}

static void prt(String s) {
System.out.println(s);
}
}



Curso de Java




Jess Cceres Tello Pg. 7 - 23

Cadenas de Caracteres

En Java no hay ningn tipo predefinido para cadena de caracteres, al igual que en
C++, en su lugar hay una clase, llamada String, que es la que soporta todas las
operaciones con las cadenas de caracteres.


Su definicin es la siguiente:











Algunas operaciones bsicas con cadenas son las siguientes:


Concatenacin

Se realiza a travs de la operacin +, es decir, sumando cadenas

Ejemplo:

String saludo= hola;
String nombre = Pepe;
String saluda_pepe = ;

saluda_pepe = saludo + nombre; //saluda_pepe toma el valor holaPepe

En Java si se intenta encadenar un String con otro tipo de variable,
automticamente se convierte el resultado a String. Veamos el siguiente ejemplo:

String saludo = Hola;
int n=65;

saludo = saludo + + n //saludo toma el valor Hola 65

Subcadenas

Uno de los mtodos que posee la clase String permite la extraccin de una
subcadena de caracteres de otra ya existente. Su sintaxis es la siguiente:

Nombre_ String.substring( int posicin_ inicial, int posicin_ final) ;

donde posicion_inicial y posicion_final son repectivamente la posicin del primer
carcter que se desea extraer y la posicin del primer carcter que ya no se desea
extraer.
String s; //Definicin de un string no inicializado

String s=; //Inicializado a cadena vaca

String s=Hola Java; //Inicializacin y asignacin en la misma lnea


Curso de Java




Jess Cceres Tello Pg. 8 - 23

Ejemplo:

String saludo = Hola;
String subsaludo = ;
subsaludo = saludo.substring(0,2); //subsaludo toma el valor Ho

Tambin se puede extraer un nico char de la cadena. Para esto se utiliza el
mtodo charAt(posicin) donde posicin es la posicin del carcter que se desea
extraer.

Comparacin de Cadenas


Para la comparacin de cadenas se utiliza el mtodo equals cuya sintaxis es la
siguiente:

cadena1.equals(cadena2);

Este mtodo devuelve true si son iguales y false si no lo son. Otro mtodo, si cabe,
ms utilizado y til es el siguiente:

boolean equalsIgnoreCase(String str)

que comprueba si dos cadenas son iguales ignorando las maysculas.

Todas estas operaciones se vern ms claramente en el siguiente ejemplo:

























Ejemplo 2.6: Ejemplo de algunas operaciones con String

public class ejemplo6 {

public static void main(String[] args) {
//Declaracin de variables
String saludo = Hola;
String saludo2 = hola;
int n = 6;

//Imprime por consola la subcadena formada por los caracteres
// comprendidos entre el caracter 0 de la variable saludo y el
//carcter 2, sin incluir el ltimo

prt(subcadena : + saludo.substring(0,2));

//Concatena saludo con un espacio en blanco y el valor de la
//variable n
prt(nuevo saludo: + saludo + + n);

//Imprime el resultado del test de igualdad entre saludo y saludo2.

prt(saludo == saludo2 -> + saludo.equals(saludo2));
}

static void prt(String s) {
System.out.println(s);
}
}



Curso de Java




Jess Cceres Tello Pg. 9 - 23


Otros mtodos para el manejo de cadenas son los siguientes:

int length() : Devuelve la longitud de la cadena, incluyendo espacios en blanco







int indexOf(String str, int indice) : Devuelve el ndice en el que aparece por
primera vez la cadena str. Recordar que un String est indexado, si el ndice a
partir del que se inicia la bsqueda no existe o la cadena str no aparece, se
devuelve -1. Es un mtodo muy usado.







int indexOf(char ch): devuelve el ndice en el que aparece por primera vez el
carcter que se le pasa como parmetro. Si no se encuentra se devuelve -1.
Mtodo sobrecargado.


String replace(char viejoChar, char nuevoChar): Cambia el carcter asociado
al primer argumento por el que se le pasa como segundo argumento generando
una nueva cadena. La cadena sobre la que se aplica el mtodo no cambia,
simplemente se crea otra nueva.







String toLowerCase(): Devuelve una nueva cadena convirtiendo todos los
caracteres de la cadena en minsculas.


String toUpperCase(): Devuelve una nueva cadena convirtiendo todos los
caracteres de la cadena en maysculas.


boolean startsWith(String str): Comprueba que la cadena sobre la que se aplica
comienza con la subcadena pasada como argumento.


boolean endsWith(String str): Comprueba que la cadena sobre la que se aplica
acaba con la subcadena pasado como argumento.

String s=pato;
int longitud = s.length();
System.out.println(longitud);

String str=expedicin;
System.out.println(str.indexOf(x, str.length())); //devolver -1

String s=pato;
String s1 = s.replace(o,a);
System.out.println(s1);



Curso de Java




Jess Cceres Tello Pg. 10 - 23


String trim(): Devuelve una cadena sin espacios en blanco al principio y al final.
No elimina los espacios en blanco situados entre las palabras.









String substring(int indiceInicio, int indiceFinal): Devuelve una cadena
obtenida a partir del ndice inicial incluido y del ndice final excluido. Se comporta
como un intervalo semiabierto [indiceInicial, indiceFinal). Si el ndice final
sobrepasa la longitud de la cadena, se lanza una excepcin
IndexOutOfBoundsException. Muy usado.







char charAt(int indice): devuelve el carcter asociado al ndice que se le pasa
como argumento de la cadena sobre la que se aplica el mtodo. Si el ndice no
existe se lanza una excepcin StringIndexOutOfBoundsException. Muy usado.



La clase StringBuffer
En Java las cadenas se tratan de forma diferente a C/C++, donde las cadenas son
matrices de caracteres en las que se indica el final de la cadena con un carcter de
valor \0. En Java las cadenas son objetos de las clases predefinida String o
StringBuffer, que estn incluidas en el paquete java.lang.*.
Siempre que aparecen conjuntos de caracteres entre comillas dobles, el compilador
de Java crea automticamente un objeto String.
Si slo existieran cadenas de slo lectura (String), durante una serie de
manipulaciones sobre un objeto String habra que crear un nuevo objeto para cada
uno de los resultados intermedios.
El compilador es ms eficiente y usa un objeto StringBuffer para construir cadenas
a partir de las expresiones, creando el String final slo cuando es necesario. Los
objetos StringBuffer se pueden modificar, de forma que no son necesarios nuevos
objetos para albergar los resultados intermedios.
La creacin de objetos StringBuffer se realiza usando los constructores de la clase,
bien indicndole el nmero de caracteres iniciales del objeto o bien crendolo a
partir de una cadena de tipo String ya existente:
String str=hola como estas;
System.out.println(str.length());
String strBis = str.trim();
System.out.println(strBis.length());
String str=cocodrilo;
System.out.println(str.substring(2,7));


Curso de Java




Jess Cceres Tello Pg. 11 - 23









Entre los mtodos que posee destacan la cantidad de mtodos sobrecargados que
posee el mtodo append el cual permite aadir un carcter o conjunto de ellos al
StringBuffer creado. Veamos un ejemplo de la utilizacin de alguno de sus
mtodos:












Ejemplo 2.7: Ejemplo de creacin del objeto StringBuffer


Matrices Arrays

En Java los arrays son objetos. Como tales se deben crear mediante el comando
new. La sintaxis de la definicin de una array es la siguiente:

Tipo_ dato[ ] nombre_ array = new Tipo_ dato[ tamao_ array] ;

tipo_dato es el tipo de datos que se almacenarn en el array (int, char, String o
cualquier objeto), tamao_array es el nmero de elementos que se quiere que
contenga dicho array. El tamao de los arrays no puede cambiar en tiempo de
ejecucin como puede producirse en otros lenguajes.

Ejemplo:

char[] arrayCaracteres = new char[10];

La declaracin de un array tambin se puede hacer en dos lneas de cdigo
diferentes, la primera para definirla y la segunda para su creacin (es un objeto). El
ejemplo anterior quedara de la siguiente forma:

char arrayCaracteres[];
arrayCaracteres = new char[10];


StringBuffer cadena = new StringBuffer(int legth);
StringBuffer cadena = new StringBuffer(String str);

public class ejemplo7 {

public static void main(String[] arg) {

StringBuffer s1 = new StringBuffer(Hola);
s1.append( Java!);
System.out.println(s1);
s1.insert(6,desde );
System.out.println(s1);
}

}




Curso de Java




Jess Cceres Tello Pg. 12 - 23

Los arrays se enumeran desde el elemento cero, que sera el primer elemento,
hasta el tamao-1, que sera el ltimo elemento. Es decir, si tenemos un array de
diez elementos, el primer elemento sera el que ocupe la posicin cero y el ltimo el
que ocupe la posicin nueve.

Para acceder a un elemento se har utilizando los corchetes:

char x = arrayCaracteres[2];
Aunque el objeto Array no existe como tal, posee una variable, .length, que
devuelve el nmero de elementos que posee el array. Es una variable de solo
lectura por lo que no se pueden realizar asignaciones a esta variable.

int longitud = arrayCaracteres.length;

Esta variable tendr un valor indudable en recorridos por el array mediante la
utilizacin de bucles como ya se ver ms adelante.

Se pueden declarar arrays de varios subndices, pudiendo tener arrays de dos, tres,
cuatro niveles, si bien es a partir del tercer nivel cuando se pierde la perspectiva
geomtrica.

Para declarar e inicializar un array de varios subndices se har de la siguiente
forma:

Tipo_datos[][] nombre_array = new Tipo_datos[tamao1][tamao2];

o bien:

Tipo_datos nombre_array[][];
nombre_array = new Tipo_datos[tamao1][tamao2];

De esta forma se puede declarar una matriz de 2x2 de la siguiente forma:

int matriz[][];
matriz = new int[2][2];

El acceso se hara de la misma forma:

int x = matriz[1][1]; //Para leer el contenido de un elemento
matriz[1][1] = x; //Para asignar un valor


Para la inicializacin de un array con contenidos se utilizan las llaves de la siguiente
forma:

Tipo_datos miaray[] = {elemento1, elemento2, ...... , elementoN};

Ejemplo:

char arrayCaracteres[] = {a, b , c , d , e};

int arrayEnteros[][] = {{1,2,3,4} , {5,6,7,8}};



Curso de Java




Jess Cceres Tello Pg. 13 - 23


mbito de las Variables

Una vez definida en el cdigo una variable, sta dejar de existir cuando se acabe
el bloque donde ha sido definida. Los bloques en Java empiezan por { y finalizan
con }.

Veamos un ejemplo:
















Hay un caso digno de mencin y se produce a la hora de declarar una misma
variable en dos mbitos diferentes. Este caso es ac eptado en C++, sin embargo en
Java, se pens que sera ms claro el cdigo si no se permitiesen declaraciones
como la siguiente:














Control de Flujo

La ejecucin de un programa en Java ante la ausencia de sentencias de
control de flujo es secuencial, es decir, las instrucciones se ejecutan una detrs de
otra y slo se ejecutarn una vez. Esto constituye una limitacin a la hora de
realizar programas, por lo que se introducen las llamadas estructuras de control de
flujo.



{
int x = 12

/* slo est disponible x */

{
int q = 96;

/* disponible x y q */
}

/* slo disponible x. q queda fuera de mbito */

}
{
int x = 12

{
int x = 96;

/* Error en Java, permitido en C++ */
}

}


Curso de Java




Jess Cceres Tello Pg. 14 - 23

Sentencias Condicionales

If then Else

Su sintaxis puede ser cualquiera de las siguientes:














































Ejemplo 2.8: Ejemplo de la sentencia if - else if - else


if (condicin)
{
Grupo de sentencias
}

if (condicin) {
Grupo de sentencias 1}
else {
Grupo de sentencias 2}

if (condicin) {
Grupo de sentencias 1}
else if (condicion2) {
Grupo de sentencias 2}
else if (condicion3) {
Grupo de sentencias 3}
.
.
.
else {
Grupo de sentencias n}

public class ejemplo8 {
//Mtodo que devuelve -1 si a>b, 1 si a<b y 0 si son iguales
static int test(int a, int b) {
int result = 0;
if (a <b)
result = 1;
else if (a>b)
result = 1;
else
result = 0;
return result;
}

static void prt(String s) {
System.out.println(s);
}

public static void main(String[] args) {
prt(test(15,3));
prt(test(3, 15));
prt(test(3,3));
}



Curso de Java




Jess Cceres Tello Pg. 15 - 23

Switch

Se podra decir que es una estructura comparativa mltiple ya que compara el valor
de una variable con una serie de valores.

Estos valores nicamente podrn ser char o cualquier otro tipo de valor entero
exceptuando long. No se puede comparar con reales ni con cadenas de caracteres,
etc. Esta es una limitacin muy criticada en esta estructura ya que no ha
evolucionado desde C++.

Igualmente se dice que es una estructura comparativa mltiple porque nicamente
acepta la igualdad, no admite la desigualdad. Por ltimo necesita de una sentencia
break para romper la ejecucin secuencial ya que de no ponerla se ejecutara todo
el cdigo posterior aunque no se cumpliese la condicin. Su sintaxis es la siguiente:






































Ejemplo 2.9: Ejemplo de la sentencia switch case
public class ejemplo9 {
//Mtodo que imprime vocal si se introduce un carcter vocal y
//consonante si se introduce otro carcter
static int test(char c) {
switch (c) {
case a:
case e:
case i:
case o:
case u: prt(VOCAL); break;
default : prt(CONSONANTE);
}
}

static void prt(String s) {
System.out.println(s);
}

public static void main(String[] args) {
prt(test(a));
prt(test(b));
prt(test(e));
}


switch(variable) {

case valor 1 : Grupo de sentencias 1; break;
case valor 2 : Grupo de sentencias 2; break;
case valor 3 : Grupo de sentencias 3; break;
...
case valor n : Grupo de sentencias n; break;

default: Sentencias que se ejecutan si no se ha cumplido ninguna condicin; break;

}



Curso de Java




Jess Cceres Tello Pg. 16 - 23



Estructuras de Iteracin

Son instrucciones que permiten la repeticin de un cdigo mientras se cumple una
condicin. En Java podemos encontrarnos con tres estructuras de este tipo.


Bucle While

Para su ejecucin se comprueba previamente la condicin. Su sintaxis es la
siguiente:
























Ejemplo 2.10: Ejemplo con bucle iterativo while


Bucle do while

Su funcionamiento es similar al anterior con la salvedad que la condicin se evala
al final del bloque de cdigo por lo que se cumpla o no la condicin de la estructura,
el bloque de cdigo se ejecutar como mnimo una vez.









while (condicin) {

Grupo de sentencias 1;
}

public class ejemplo10 {
//Mtodo que imprime un nmero elegido al azar hasta mientras que sea
menor que 1

public static void main(String[] args) {
double r = 0;

while (r<0.99d) {
r = Math.random();
System.out.println(r);

}
}
}

do{

Grupo de sentencias 1;

}while(condicin)



Curso de Java




Jess Cceres Tello Pg. 17 - 23

















Ejemplo 2.11: Ejemplo con la estructura iterativa do - while


Bucle for

Su sintaxis es la siguiente:










donde:

expresin1 es una asignacin inicial a la variable del bucle.
expresin2 es la condicin que se impone para que se ejecute el
cdigo.
expresin3 es la operacin que se realiza en cada iteracin con la
variable del bucle.











Ejemplo 2.12: Ejemplo con la estructura iterativa for


public class ejemplo11 {
//La clase es similar a la anterior pero en este caso no hace falta la
//inicializacin de la variable r ya que coger su valor directamente dentro del
//bucle do - while

public static void main(String[] args) {
double r;

do{
r = Math.random();
System.out.println(r);

} while (r<0.99d)
}
}

for(expresin1;expresin2;expresin3){

Grupo de sentencias;

}
public class ejemplo12 {
//Imprime las cadenas introducidas como parmetros de entrada

public static void main(String[] args) {
for( int i=0; i<arts.length; i++)
System.out.println(Argumento +i+ : +args[i]);
}
}


Curso de Java




Jess Cceres Tello Pg. 18 - 23

Sentencias de Control de Flujo

Java tiene tres sentencias de salto para controlar el flujo de ejecucin de un
programa: break, continue y return

Break

En Java, la sentencia break tiene tres usos:

Permite terminar una secuencia de sentencias en un switch.
Se puede utilizar para salir de un bucle.
Se puede utilizar como una forma civilizada de goto.


Veamos un ejemplo:














Ejemplo 2.13: Ejemplo con la sentencia break


Continue

Algunas veces es til salir anticipadamente de una iteracin de un bucle, es decir,
continuar con el bucle pero dejar sin procesar el resto del cdigo en esta iteracin
en concreto. Esto se puede lograr mediante el uso de la sentencia continue















Ejemplo 2.14: Ejemplo con la sentencia continue
public class ejemplo13 {
//Imprime las cadenas introducidas como parmetros de entrada

public static void main(String[] args) {
for( int i=0; i<100; i++) {
if (i==10)
break;
System.out.println(i);
}
System.out.println(Bucle completado...);
}
}
public class ejemplo14 {
//Imprime las cadenas introducidas como parmetros de entrada

public static void main(String[] args) {
for( int i=0; i<10; i++) {
System.out.println(i+ );
if (i%2 == 0)
continue;
System.out.println( );
}
}
}


Curso de Java




Jess Cceres Tello Pg. 19 - 23


Return

Sus funciones son las mismas que en C++. Cuando se llama a un procedimiento
(en POO se llamar mtodo) la sentencia return devolver el valor especificado al
cdigo que hizo la llamada a ese mtodo. Se puede decir que termina el control de
flujo de un mtodo para devolverlo al cdigo que realiz la llamada.
















































Curso de Java




Jess Cceres Tello Pg. 20 - 23

Laboratorio

A continuacin se presentan una serie de ejemplos que hacen uso de los tpicos
cubiertos en este captulo; declaracin y asignacin de variables, arreglos,
operadores, condicionales y bucles. Codifique y ejecute los siguientes ejemplos a fin
de conocer un poco ms acerca del comportamiento de los elementos y estructuras
bsicas que conforman a Java.

Condicionales

A continuacin se presenta un programa completo, que hace uso de la sentencia if-
else para determinar en qu estacin se encuentra un mes en particular,
asumiendo que se presentan las cuatro estaciones: invierno, primavera,
verano, otoo.







































public class Estaciones {

public static void main(String[] args) {
int mes = 4;
String razon;
if (mes==12 || mes ==1 || mes==2)
{
razon = el invierno;
}
else if (mes ==3 || mes==4 || mes==5)
{
razon = la primavera;
}
else if (mes == 6 || mes == 7 || mes==8)
{
razon = el verano;
}
else if (mes ==9 || mes==10 || mes==11)
{
razon = el otoo
}
else
{
razon = Mes inexistente;
}
System.out.println(El mes + mes + esta en + razon);
}
}


Curso de Java




Jess Cceres Tello Pg. 21 - 23


Bucles

El siguiente programa hace uso del bucle for y del condicional switch para
contar el nmero de lneas, palabras y caracteres de una cadena de texto dada.

















































public class CuentaPalabras {

static String text = Estamos aprendiendo a programar en Java\n;
static int longitud = text.length();

public static void main(String[] args) {
boolean enPalabra = false;
int numCar = 0;
int numPal = 0;
int numLin = 0;

for(int i=0;i<longitud;i++)
{
char c = text.charAt(i);
numCar++;
switch(c) {
case \n:
numLin++; // Continua
case \t: //Continua
case :
if(enPalabra)
{
numPal++;
enPalabra = false;
}
default:
enPalabra = true;
}

}
System.out.println(\t + numLin + \t + numPal + \t + numCar) ;
}
}


Curso de Java




Jess Cceres Tello Pg. 22 - 23




Matrices

El prximo ejemplo crea una matriz de cinco por cinco doubles, que se inicializa
con los valores de la diagonal (i=j) a 1.0, dejando todos los otros elementos de la
matriz a cero.


























Observar que no se necesita inicializar los valores que se desea ajustar a cero. Java
establece a cero o a valores nulos todas las variables que no se asignen.

















public class Matriz {

public static void main(String[] args) {
double m[][];
m = new double[5][5];

for (int i=0;i<m.length;i++)
{
m[i][i] = 1.0;
}

System.out.println(m[0][0]+ +m[0][1]+ +m[0][2]+ +m[0][3]+ +m[0][4]);
System.out.println(m[1][0]+ +m[1][1]+ +m[1][2]+ +m[1][3]+ +m[1][4]);
System.out.println(m[2][0]+ +m[2][1]+ +m[2][2]+ +m[2][3]+ +m[2][4]);
System.out.println(m[3][0]+ +m[3][1]+ +m[3][2]+ +m[3][3]+ +m[3][4]);
System.out.println(m[4][0]+ +m[4][1]+ +m[4][2]+ +m[4][3]+ +m[4][4]);

}
}


Curso de Java




Jess Cceres Tello Pg. 23 - 23



Ejercicios

Crear un programa llamado PrintArg que muestre por pantalla el listado de
los argumentos pasados en la lnea de comando. Si no han sido pasados
parmetros, el programa debe indicarlo con un mensaje por pantalla.


Crear una clase pblica de nombre CuentaString que contenga slo al
mtodo main y partiendo del String "En mi proxima vida sere ganadero y
cuidare vacas en el campo" declarada e inicializada, mostrar por consola lo
siguiente:

Su longitud
El carcter asociado al ndice 7
La subcadena "ganadero"
El ndice que ocupa el carcter 'x'
La cadena transformada en maysculas
Por ltimo, comprobar si el primer carcter de la String es 'E' y
mostrar por consola un mensaje que lo indique.




Crear un programa que cuente el nmero de veces que aparece la letra l en
la siguiente cadena: Pablo clav un clavo en la cabeza del calvo



Crear un programa en Java que determine si dos cadenas de caracteres son
iguales comparndolas carcter a carcter



Crear un programa en Java que genere los 80 primeros nmeros mltiplos
de 5 que a su vez sean impares.

Vous aimerez peut-être aussi