Sie sind auf Seite 1von 23

Curso de Java

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 */

/************************************************
* 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!);
}

Ejemplo 2.1: Comentando un programa en Java

Jess Cceres Tello Pg. 1 - 23


Curso de Java

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.

Jess Cceres Tello Pg. 2 - 23


Curso de Java

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

Jess Cceres Tello Pg. 3 - 23


Curso de Java

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:

(tipo de dato de destino) valor

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

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);
}
}

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.

Jess Cceres Tello Pg. 4 - 23


Curso de Java

public class ejemplo 3 {

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:

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);
}
}

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

Jess Cceres Tello Pg. 5 - 23


Curso de Java

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

public class ejemplo 5 {

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);
}
}

Ejemplo 2.5: Ejemplo de operadores de incremento y decremento

Jess Cceres Tello Pg. 6 - 23


Curso de Java

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:

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

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.

Jess Cceres Tello Pg. 7 - 23


Curso de Java

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.equa ls(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:

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);
}
}

Ejemplo 2.6: Ejemplo de algunas operaciones con String

Jess Cceres Tello Pg. 8 - 23


Curso de Java

Otros mtodos para el manejo de cadenas son los siguientes:

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

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

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.

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

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 s=pato;
String s1 = s.replace(o,a);
System.out.println(s1);

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.

Jess Cceres Tello Pg. 9 - 23


Curso de Java

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 str=hola como estas;


System.out.println(str.length());
String strBis = str.trim();
System.out.println(strBis.length());

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.

String str=cocodrilo;
System.out.println(str.substring(2,7));

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:

Jess Cceres Tello Pg. 10 - 23


Curso de Java

StringBuffer cadena = new StringBuffer(int legth);


StringBuffer cadena = new StringBuffer(String str);

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:

public class ejemplo 7 {

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);
}

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];

Jess Cceres Tello Pg. 11 - 23


Curso de Java

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}};

Jess Cceres Tello Pg. 12 - 23


Curso de Java

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:

{
int x = 12

/* slo est disponible x */

{
int q = 96;

/* disponible x y q */
}

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

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:

{
int x = 12

{
int x = 96;

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


}

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.

Jess Cceres Tello Pg. 13 - 23


Curso de Java

Sentencias Condicionales

If then Else

Su sintaxis puede ser cualquiera de las siguientes:

if (condicin) if (condicin) {
{ Grupo de sentencias 1}
Grupo de sentencias 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 ejemplo 8 {


//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));
}

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

Jess Cceres Tello Pg. 14 - 23


Curso de Java

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:

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;

public class ejemplo 9 {


//Mtodo que imprime vocal si se introduce un carcter vocal y
//consonante si se introduce otro carcter
static int te st(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));
}

Ejemplo 2.9: Ejemplo de la sentencia switch case

Jess Cceres Tello Pg. 15 - 23


Curso de Java

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:

while (condicin) {

Grupo de sentencias 1;
}

public class ejemplo 10 {


//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);

}
}
}

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.

do{

Grupo de sentencias 1;

}while(condicin)

Jess Cceres Tello Pg. 16 - 23


Curso de Java

public class ejemplo 11 {


//La clase es similar a la ante rior 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)
}
}

Ejemplo 2.11: Ejemplo con la estructura iterativa do - while

Bucle for

Su sintaxis es la siguiente:

for(expresin1;expresin2;expresin3){

Grupo de sentencias;

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.

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]);
}
}

Ejemplo 2.12: Ejemplo con la estructura iterativa for

Jess Cceres Tello Pg. 17 - 23


Curso de Java

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:

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...);
}
}

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

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( );
}
}
}

Ejemplo 2.14: Ejemplo con la sentencia continue

Jess Cceres Tello Pg. 18 - 23


Curso de Java

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.

Jess Cceres Tello Pg. 19 - 23


Curso de Java

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);
}
}

Jess Cceres Tello Pg. 20 - 23


Curso de Java

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) ;
}
}

Jess Cceres Tello Pg. 21 - 23


Curso de Java

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.

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]);

}
}

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.

Jess Cceres Tello Pg. 22 - 23


Curso de Java

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.

Jess Cceres Tello Pg. 23 - 23

Das könnte Ihnen auch gefallen