Curso Lenguaje JAVA(Modificado 02-2010)

78
[email protected] Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández [email protected] 1 Ing. Patricia Del Valle Morales Ing. Patricia Del Valle Morales [email protected] M en C Gabriel Castillo Hernández M en C Gabriel Castillo Hernández [email protected] Lenguaje Lenguaje JAVA JAVA

Transcript of Curso Lenguaje JAVA(Modificado 02-2010)

Page 1: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

11

Ing. Patricia Del Valle MoralesIng. Patricia Del Valle [email protected]

M en C Gabriel Castillo Hernández M en C Gabriel Castillo Hernández [email protected]

LenguajeLenguaje

JAVAJAVA

Page 2: Curso Lenguaje JAVA(Modificado 02-2010)

1.11.1 La función main ()

1.41.4 Punto y coma, bloques y comentarios

1.51.5 Instrucciones básicas

1.61.6 El ambiente de desarrollo

1. Introducción al JAVA1. Introducción al JAVA

Page 3: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

33

¿Que es un programa?¿Que es un programa?Un programa es un conjunto de instrucciones de computadora que actúan Un programa es un conjunto de instrucciones de computadora que actúan sobre un conjunto de datos y generan como resultado información sobre un conjunto de datos y generan como resultado información

C PU

B u s de da to s

B u s de dire ccio n e s

M e m o ria

1

2

0

3

n -2

n -1

D ire ccio n e s(n ce lda s de m e m o ria )

D atos e in s tr u c c ion e s

C e lda de m e m o ria

B u s de co n tro l

Tanto los datos como las instrucciones se codifican en términos de dígitos binarios, de modo que una celda puede contener un dato o una instrucción.

Page 4: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

44

Ejemplo: jemplo:

Información

Un programa Un programa calculará el calculará el promediopromedio

de las calificacionesde las calificacionesde un alumnode un alumno

con base en una con base en una conocida ecuación conocida ecuación estadística. estadística.

Datos

Programa

DatosProcedimientos

Programa:

CompiladorCódigo binario

……

instrucciones a instrucciones a ejecutar por el ejecutar por el procesadorprocesador

Page 5: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

¿Qué es una clase?¿Qué es una clase?

¿Qué es un objeto?¿Qué es un objeto?

55

Clases vs ObjetosClases vs Objetos

Page 6: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

66

ClasesClases

classclass Nombre_de_la_clase Nombre_de_la_clase {{

atributosatributos…………

constructor o constructores de la claseconstructor o constructores de la clase…………

Métodos (funciones)Métodos (funciones)……....

}}

Page 7: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

77

Control de accesoControl de acceso Cuando se crea una nueva clase en Java, se Cuando se crea una nueva clase en Java, se

puede especificar el nivel de acceso que se quiere puede especificar el nivel de acceso que se quiere para las variables de instancia y los métodos para las variables de instancia y los métodos definidos en la clase:definidos en la clase:

publicpublic public void CalculaPromedio() {public void CalculaPromedio() {

} }

Cualquier clase desde cualquier lugar puede Cualquier clase desde cualquier lugar puede acceder a las variables y métodos de instacia acceder a las variables y métodos de instacia públicos. públicos.

Page 8: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

88

Control de accesoControl de acceso protectedprotected

protected void SoloSubClases(){protected void SoloSubClases(){} }

Sólo las subclases de la clase y nadie más Sólo las subclases de la clase y nadie más puede acceder a las variables y métodos de puede acceder a las variables y métodos de instancia protegidos. instancia protegidos.

privateprivate private String RFCEmpleado; private String RFCEmpleado;

Las variables y métodos de instancia privados Las variables y métodos de instancia privados sólo pueden ser accedidos desde dentro de la sólo pueden ser accedidos desde dentro de la clase. No son accesibles desde las subclases. clase. No son accesibles desde las subclases.

Page 9: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

99

class HolaMundo {class HolaMundo {

/* Programa: Hola mundo /* Programa: Hola mundo constructor de la clase HolaMundo constructor de la clase HolaMundo */ */ public void HolaMundo() { public void HolaMundo() {

} } // Rutina principal // Rutina principal // todo programa siempre comienza en la función main // todo programa siempre comienza en la función main

public static void main(String args[]) public static void main(String args[]) { {

System.out.println("Hello world\n");System.out.println("Hello world\n"); } } }}

Estructura de un programa Estructura de un programa

Page 10: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1010

classclass HolaMundo HolaMundo {{

……………………..

}}

La primera línea declara la La primera línea declara la clase de objetos HolaMundoclase de objetos HolaMundo

Por que el esqueleto de Por que el esqueleto de cualquier aplicación JAVA cualquier aplicación JAVA se basa en la definición de se basa en la definición de una clase.una clase.

Es decir las clases son la Es decir las clases son la base de los programas en base de los programas en JAVA.JAVA.

El cuerpo de la clase se El cuerpo de la clase se especifica dentro de las especifica dentro de las llaves { }.llaves { }.

Page 11: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1111

/*/* Programa: Hola mundoPrograma: Hola mundo constructor de la clase HolaMundoconstructor de la clase HolaMundo*/*/

//// Rutina principalRutina principal//// todo programa siempretodo programa siempre//// comienza en la función maincomienza en la función main

Comentarios:Comentarios:

El texto encerrado entre los El texto encerrado entre los símbolos símbolos /*/* y y */ */ (sin espacios (sin espacios intermedios entre el asterisco intermedios entre el asterisco y la diagonal) se consideran y la diagonal) se consideran comentarios que el comentarios que el programador hace sobre su programador hace sobre su código y por lo tanto no debe código y por lo tanto no debe ser compilado. ser compilado.

Los símbolos Los símbolos // // (sin espacios (sin espacios intermedios entre las intermedios entre las diagonales) indican también diagonales) indican también comentarios pero sólo afectan comentarios pero sólo afectan a cualquier cadena a la a cualquier cadena a la derecha de ellos y hasta que derecha de ellos y hasta que termine la línea en donde termine la línea en donde fueron insertados.fueron insertados.

Page 12: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1212

class HolaMundo {class HolaMundo {

/* Programa: Hola mundo /* Programa: Hola mundo constructor de la clase HolaMundo constructor de la clase HolaMundo */ */ public void HolaMundo() { public void HolaMundo() {

} } // Rutina principal // Rutina principal // todo programa siempre comienza en // todo programa siempre comienza en

public static void main(String args[])public static void main(String args[]) { {

System.out.println("Hello world\System.out.println("Hello world\n");n"); } } }}

Todo programa inicia siempre con la Todo programa inicia siempre con la ejecución del código posterior al ejecución del código posterior al identificador main (conocido como identificador main (conocido como ““función principalfunción principal”). ”).

Las instrucciones se agrupan en Las instrucciones se agrupan en bloquesbloques, los bloques son básicamente , los bloques son básicamente conjuntos de instrucciones delimitadas conjuntos de instrucciones delimitadas por los símbolos de llave “por los símbolos de llave “{{” (inicio del ” (inicio del bloque) y “bloque) y “}}” (terminación del bloque)” (terminación del bloque)

Dentro de la función main (principal) Dentro de la función main (principal) se especifican las operaciones que se se especifican las operaciones que se desea que realice el programa. Estas desea que realice el programa. Estas operaciones pueden incluir: operaciones pueden incluir:

– declaración de variables, declaración de variables, – cálculos numéricos, cálculos numéricos, – operaciones de decisiónoperaciones de decisión– llamadas a otras funciones.llamadas a otras funciones.

(En el ejemplo se llama a la función printf)(En el ejemplo se llama a la función printf)

Los puntos y comasLos puntos y comas indican indican finalización de una instrucción o finalización de una instrucción o declaración. Las excepciones se declaración. Las excepciones se indicarán en su momento indicarán en su momento

Page 13: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1313

En el ejemplo se observa que el método En el ejemplo se observa que el método mainmain llama para su ejecución al método llama para su ejecución al método printlnprintln de la clase de la clase out out miembro del miembro del paquete (biblioteca) de clases paquete (biblioteca) de clases SystemSystem de de JAVA.JAVA.

Sintaxis:Sintaxis: paquete.clase.métodopaquete.clase.método

System.out.printlnSystem.out.println

Page 14: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1414

Compilar y ejecutarCompilar y ejecutar

El programa fuente debe de guardarse El programa fuente debe de guardarse con el mismo nombre de la clase con el mismo nombre de la clase respetando minúsculas y mayúsculas.respetando minúsculas y mayúsculas.

Compilar:Compilar:– Javac HolaMundo.javaJavac HolaMundo.java

HolaMundo.classHolaMundo.class …..código ejecutable …..código ejecutable

Page 15: Curso Lenguaje JAVA(Modificado 02-2010)

2.2. Tipos de datosTipos de datos

2.12.1 Tipos de datos Tipos de datos

2.22.2 Declaración y uso de constantes Declaración y uso de constantes

2.32.3 Declaración e inicialización de variables Declaración e inicialización de variables

2.42.4 Variables locales Variables locales

Page 16: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1616

Las palabras especiales indican acciones o especificaciones dentro de un programa.

Estas palabras se conocen como palabras reservadas o palabras clave. A continuación se presenta la lista de las 32 palabras reservadas del ANSI C, aunque algunos compiladores añaden otras palabras clave, propias de cada uno de ellos.

Palabras reservadasPalabras reservadas

Auto Double int struct

Break Else long switch

Case Enum register typedef

Char Extern return union

Const Float short unsigned

continue For signed void

Default Goto sizeof volatile

Do If static while

Page 17: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1717

Tipo de constantesTipo de constantes

Constantes enterasConstantes enteras:: valores representados por un número entero (positivo o negativo), por valores representados por un número entero (positivo o negativo), por

ejemplo: ejemplo: 33, , -4-4, , 10241024, , 0000300003, etc. , etc. Obsérvese que los ceros a la izquierda del número no son significativosObsérvese que los ceros a la izquierda del número no son significativos

Constantes reales o de punto flotanteConstantes reales o de punto flotante:: valores representados por un número real, por ejemplo: valores representados por un número real, por ejemplo: 1.23400001.2340000, ,

3.14153.1415, , 1.2345E+101.2345E+10, , -1.45-1.45, , -123.5215E-03-123.5215E-03. . Al igual las constantes enteras los ceros a la izquierda no son Al igual las constantes enteras los ceros a la izquierda no son

significativos, los ceros a la derecha después del punto decimal y al significativos, los ceros a la derecha después del punto decimal y al final del número tampoco son significativos, de manera que las final del número tampoco son significativos, de manera que las constantes constantes 0007326.1240000007326.124000, , 7326.1240007326.124000 y y 7326.1247326.124 representan el representan el mismo número.mismo número.

Constantes tipo carácter:Constantes tipo carácter: valores representados por un sólo caracter, se delimitan por apóstrofos, valores representados por un sólo caracter, se delimitan por apóstrofos,

por ejemplo por ejemplo ’a’’a’, , ’K’’K’, , ’@’’@’, , ’+’’+’.. Los delimitadores evitan que se confundan con identificadores de Los delimitadores evitan que se confundan con identificadores de

variables, palabras reservadas o símbolos empleados por el lenguaje. variables, palabras reservadas o símbolos empleados por el lenguaje.

Page 18: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1818

Los caracteres definidos originalmente en C son aquellos correspondientes Los caracteres definidos originalmente en C son aquellos correspondientes a la tabla ASCII.a la tabla ASCII.

Page 19: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

1919

Constantes de cadenas de caracteresConstantes de cadenas de caracteres:: Las cadenas de caracteres se delimitan por medio de comillas dobles, Las cadenas de caracteres se delimitan por medio de comillas dobles,

de ésta manera se evita que se confundan con palabras reservadas por de ésta manera se evita que se confundan con palabras reservadas por el lenguaje o por las variables definidas por el usuario.el lenguaje o por las variables definidas por el usuario.

Por ejemplo: Por ejemplo: ””Hola mundo” Hola mundo” ””Dame un número”Dame un número” ” ” El promedio es: ”El promedio es: ”..........

Obsérvese que si encerramos entre comillas dobles a una palabra Obsérvese que si encerramos entre comillas dobles a una palabra reservada, ésta deja de representar una palabra especial y se interpreta reservada, ésta deja de representar una palabra especial y se interpreta como una constante de cadena de caracterescomo una constante de cadena de caracteres

Page 20: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2020

Secuencias de escapeSecuencias de escape Para representar el salto de línea en la pantalla, un espacio de Para representar el salto de línea en la pantalla, un espacio de

tabulación, comillas, etc. C utiliza las denominadas tabulación, comillas, etc. C utiliza las denominadas secuencias de secuencias de escapeescape. .

Una secuencia de escape Una secuencia de escape representa un caracter especialrepresenta un caracter especial, comienza , comienza siempre con la diagonal invertida (siempre con la diagonal invertida ( \\ ) ) seguida de una letraseguida de una letra. La tabla . La tabla siguiente muestra las secuencias de escape utilizadas en C:siguiente muestra las secuencias de escape utilizadas en C:

Nombre Completo Constante En C En ASCII

Sonido de alerta BEL \a 7

Nueva Línea NL o LF \n 10

Tabulador horizontal HT \t 9

Retroceso BS \b 8

Retorno de carro CR \r 13

Salto de página FF \f 12

Barra invertida \ \\ 92

Apóstrofo ’ \’ 39

Comillas ” \” 34

Carácter nulo NULL \0 0

Page 21: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2121

Declaración de constantesDeclaración de constantes

final final <tipo> <nombre> = <valor>;<tipo> <nombre> = <valor>;

Ejemplo:Ejemplo:

finalfinal int max_alumnos = 30; int max_alumnos = 30;

Page 22: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2222

Nombres de variablesNombres de variables

Comenzar con una letra (A-Z y a-z), las letras acentuadas, la ñ, la ü y cualquier otra letra especial no se considera como una letra válida.

Puede continuar con letras o dígitos o el guión bajo “_”. No se permite ningún otro símbolo No pueden ser una palabra reservada En C las mayúsculas y minúsculas son diferentes, así por ejemplo

las variables: EDAD, edad, Edad, eDad hacen regencia a diferentes localidades de memoria.

Page 23: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2323

Tipos de variablesTipos de variables Para representar un dato en la memoria de la computadora se debe elegir

el tipo de dato que la variable o variables contendrán.

– De esta manera es posible indicar que determinada variable contiene valores enteros, mientras que otra contendrá valores reales (de punto flotante y con una precisión determinada).

Al asignar un tipo a una variable estamos estableciendo el conjunto de valores que dicha variable puede tomar.

– obsérvese que no estamos diciendo qué valor toma en un momento dado sino cuáles puede tomar a lo largo de la ejecución de un programa

Datos enteros Char signed char unsigned char

Short int long

unsigned short

unsigned unsigned long

Datos reales Float double long double

Page 24: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2424

Declaración de variablesDeclaración de variables

Sintaxis:Sintaxis:

<tipo> <nombre> ; <tipo> <nombre> ;

oo

<tipo> <nombre> = <valor>;<tipo> <nombre> = <valor>;

Ejemplo:Ejemplo:

class CAritmetica {class CAritmetica {public static void main(String[] args)public static void main(String[] args){{ double a;double a; float b,c;float b,c; int x=10, y;int x=10, y; …… ……}}

}}

Page 25: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2525

Ejemplo:Ejemplo:

class CLeedatos {class CLeedatos {

public static void main(String []args) {public static void main(String []args) {double num1;double num1;int num2;int num2;String nombre;String nombre;

num1= Teclado.Double("dame un numero: ");num1= Teclado.Double("dame un numero: ");num2= Teclado.entero("dame un numero entero: ");num2= Teclado.entero("dame un numero entero: ");nombre = Teclado.cadena ("nombre: ");nombre = Teclado.cadena ("nombre: ");

System.out.println("Los numeros tecleados fueron: " System.out.println("Los numeros tecleados fueron: " + num1 + ", " + num2 );+ num1 + ", " + num2 );

System.out.println("nombre: " + nombre);System.out.println("nombre: " + nombre);}}

}}

Page 26: Curso Lenguaje JAVA(Modificado 02-2010)

4. Operadores y Expresiones4. Operadores y Expresiones

4.14.1 Operadores y operandos Operadores y operandos

4.24.2 Expresiones Expresiones

4.34.3 Reglas de precedencia y asociatividad Reglas de precedencia y asociatividad

4.44.4 Conversión implícita de tipos de datos Conversión implícita de tipos de datos

Page 27: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2727

4.1 Operadores y operandos4.1 Operadores y operandos

Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más operandos (variables o constantes) para realizar una determinada operación, la cual entrega un resultado.

Los operadores se pueden clasificar como:

1.Operadores Aritméticos2.Operadores de Asignación3.Operadores de incremento y decremento4.Operadores Relacionales5.Operadores Lógicos6.Operadores Binarios

Page 28: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2828

Operadores AritméticosOperadores Aritméticos

Estos operadores se pueden aplicar a constantes, variables y expresiones numéricas. El resultado se obtiene de aplicar la operación correspondiente entre los dos operandos numéricos.

Suma: + Resta: - Multiplicación: * División: / Residuo de una división entera: %

Las expresiones pueden contener paréntesis (...) que agrupan algunos de sus términos. Puede haber paréntesis contenidos dentro de otros paréntesis. El significado de los paréntesis coincide con el habitual en las expresiones matemáticas.

En ocasiones, la introducción de espacios en blanco mejora la legibilidad de las expresiones sin afectar su significado.

Page 29: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

2929

Operadores de AsignaciónOperadores de Asignación

Los operadores de asignación asignan un valor a una variable (es decir, copian el valor a la zona de memoria correspondiente a dicha variable), este valor puede ser el resultado de una expresión o el valor de otra variable

Existen diferentes operadores de asignación, el más usado es el operador de asignación (=).

Sintaxis:nombre_de_variable = expresion;

Primero se evalúa expresion y el resultado se almacena en nombre_de_variable.

Ejemplos:x=x+2;y=a*b/(b*c);

Page 30: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3030

Existen otros operadores de asignación (+=, -=, *=, /=, &=, |=, ^=, >>=, <<=) formados por los 4 operadores aritméticos seguidos por el carácter de igualdad.

Estos operadores simplifican algunas operaciones recurrentes sobre una misma variable.

Sintaxis: variable op= expresion;

donde op representa cualquiera de los operadores (+ - * /). La expresión anterior es equivalente a:

variable = variable op expresion;

Ejemplos:

distancia += 1;rango /= 2.0;x *= 3.0 * y - 1.0;

distancia = distancia + 1;rango = rango /2.0;x = x * (3.0 * y - 1.0);

Page 31: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3131

Operadores incrementalesOperadores incrementales

Los operadores incrementales (++) y (--) son operadores unarios que incrementan o decrementan en una unidad el valor de la variable a la que afectan. Estos operadores pueden ir antes o después de la variable.

– Si el operador se coloca antes de la variable, ésta es incrementada antes de que el valor de la variable sea utilizado en la expresión en la que aparece.

– Si el operador se coloca después de la variable, la variable es incrementada después de ser utilizada en la expresión.

Ejemplos:

int i = 2, j = 2, m, n;

m = i++; // después de ejecutarse esta sentencia m=2 e i=3

n = ++j; // después de ejecutarse esta sentencia n=3 y j=3

m = --J;m = i--;

Es importante entender muy bien por qué los resultados m y n del ejemplo anterior son diferentes.

Page 32: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3232

Operadores RelacionalesOperadores Relacionales

Estos operadores producen un resultado cierto o falso según se cumpla o no una relación. Las posibles relaciones a consultar son:

Igual que: == Menor que: < Mayor que: > Menor o igual que: <= Mayor o igual que: >= Distinto que: !=

Todos los operadores relacionales son operadores binarios (tienen dos operandos).

Sintaxis: expresion1 op expresion2

donde op es uno de los operadores (==, <, >, <=, >=, !=).

Page 33: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3333

Funcionamiento:

– Se evalúan expresion1 y expresion2, y posteriormente se comparan los valores resultantes.

– Si la condición representada por el operador relacional se cumple, el resultado es diferente de cero. De esta manera podemos decir que en expresiones booleanas se considera un valor diferente de cero como cierto

– Si la condición no se cumple, el resultado es igual a 0. En expresiones booleanas se considera un valor cero como falso

Ejemplos aplicados a constantes:

(2==1) // resultado=0 porque la condición no se cumple(3<=3) // resultado distinto de 0 porque la condición se cumple(3<3) // resultado=0 porque la condición no se cumple(1!=1) // resultado=0 porque la condición no se cumple

Page 34: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3434

Operadores lógicosOperadores lógicos

Los operadores lógicos son operadores binarios que permiten combinar los resultados de los operadores relacionales, comprobando que se cumplen simultáneamente varias condiciones, que se cumple una u otra, etc.

El lenguaje JAVA tiene dos operadores lógicos: el operador and (&&) y el operador or (||). Su forma general es la siguiente:

Sintaxis:expresion1 || expresion2expresion1 && expresion2

El operador || devuelve un valor cierto (distinto de 0) si al menos una de las expresiones es cierta.

El operador && devuelve un valor cierto si tanto expresion1 como expresion2 son ciertas (es decir distintas de 0), y 0 (es decir falso) si una de las dos expresiones o las dos son falsas (es decir, iguales a 0);.

Page 35: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3535

Los operadores && y || se pueden combinar entre sí –quizás agrupados entre paréntesis–.

Ejemplo:

(2==1) || (-1==-1) // el resultado es 1(2==2) && (3==-1) // el resultado es 0((2==2) && (3==3)) || (4==0) // el resultado es 1((6==6) || (8==0)) && ((5==5) && (3==2)) // el resultado es 0

Operador negación lógica (!).

Sintaxis:

!expresion

Este operador devuelve un cero (false) si se aplica a un valor distinto de cero (true), y devuelve un valor distinto de cero (true) si se aplica a un valor cero (false).

Ejemplo:

!(1>2) // resultado distinto de cero, (cierto)!((2==2) && (3>-1)) // el resultado es cero (falso)

Page 36: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3636

4.3 Precedencia y orden de 4.3 Precedencia y orden de evaluaciónevaluación

Page 37: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3737

Los distintos operadores deJAVA se ordenan según precedencia o prioridad; para operadores de la misma precedencia, en algunos el orden de ejecución es de izquierda a derecha, y otros de derecha a izquierda (es decir se asocian de izda a dcha, o de dcha a izda). A este orden se le llama asociatividad.

Operator Name or Meaning Associativity Precedence

[ ], ( ) Array subscript, Function Call, Left to right Maxima

. Member selection (struct) Left to right

–> Member selection (pointer) Left to right

++, –– Postfix increment None

++, –– Prefix increment None

*, & Dereference (pointer), Address-of None

– Arithmetic negation (unary) None

!, Logical NOT None

~ Bitwise complement None

sizeof ( ) Size of type None

*, /, % Multiplication, Division, Reminder Left to right

+, – Addition, Subtraction Left to right

<<, Left shift Left to right

>> Right shift Left to right

< Less than Left to right

> Greater than Left to right

Page 38: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3838

Operator Name or Meaning Associativity Precedence

<= Less than or equal to Left to right

>= Greater than or equal to Left to right

== Equality Left to right

!= Inequality Left to right

& Bitwise AND Left to right

^ Bitwise exclusive OR Left to right

| Bitwise OR Left to right

&& Logical AND Left to right

|| Logical OR Left to right

e1?e2:e3 Conditional Right to left

= Assignment Right to left

*=, /= Multiplication and Division assignment Right to left

%= Modulus assignment Right to left

+=, –= Addition and Subtraction assignment Right to left

<<= Left-shift assignment Right to left

>>= Right-shift assignment Right to left

&= Bitwise AND assignment Right to left

|= Bitwise inclusive OR assignment Right to left

^= Bitwise exclusive OR assignment Right to left

, Comma Left to right Minimal

Page 39: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

3939

4.4 Conversión implícita de tipos de datos4.4 Conversión implícita de tipos de datos

Algunas expresiones, por ejemplo aritméticas o lógicas, pueden en ocasiones mezclar variables y constantes de diferentes tipos. Siempre que la mezcla dé lugar a una interpretación consistente, se lleva a cabo una conversión automática (conversión implícita) entre los diferentes tipos de datos que intervienen.

Cuando dos tipos diferentes de constantes y/o variables aparecen en una misma expresión relacionadas por un operador, el compilador convierte los dos operandos al mismo tipo de acuerdo con los rangos, que de mayor a menor se ordenan del siguiente modo (el símbolo > indica que el tipo de datos a la derecha se convierte al tipo de datos a la izquierda):

long double > double > float > long > int > char

Page 40: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4040

MétodosMétodosenen

JAVAJAVA

Page 41: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4141

Métodos Métodos Sintaxis:Sintaxis:

nivel_acceso nivel_acceso tipo_dato_retornotipo_dato_retorno nombrenombre(parámetros)(parámetros)

Ejemplos:Ejemplos: public public voidvoid MultiplicaOperandosMultiplicaOperandos(float op1, float op2) {(float op1, float op2) {

…………..}}

public public float float CalculaSumaCalculaSuma(){(){…………

}}

public public intint ObtenerPosicionObtenerPosicion(int x){(int x){…………

}}

Page 42: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4242

Accesibilidad de variablesAccesibilidad de variables

class UnaClase class UnaClase

{{

variables miembro de la clasevariables miembro de la clase

public void unMetodo(lista de parámetros)public void unMetodo(lista de parámetros)

{{

variables localesvariables locales

una sentencia compuestauna sentencia compuesta

{{

variables localesvariables locales

}}

}}

}}

Variable limitada a una clase

Variable limitada a un método

Variable limitada a un bloque

Page 43: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4343

class CGrados { //Atributos private float gradosC;

//métodos public void AsignarGradosC (float gc){ //establecer el atributo gradosC (grados centigrados) gradosC = gc; }

public float ObtenerGradosC() { //regresa el atributo gradosC return gradosC; }

public float CalculaGradosF () { //calcula y regresa los grados Fahrenheir a partir de los grados centigrados return (9f/5f * gradosC + 32); } }

Page 44: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4444

class Conversion { //función principal public static void main(String []args){ //definición de variables int gcentigrados = 10; float gfahrenheir = 0; CGrados grados = new CGrados(); //creación del objeto CGrados grados.AsignarGradosC(gcentigrados); gfahrenheir = grados.CalculaGradosF(); System.out.println("grados centigrados: " + grados.ObtenerGradosC()); System.out.println("grados Fahrenheir: " + gfahrenheir); }}

Page 45: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4545

Ejercicios: Ejercicios:

Programa 1:Programa 1:Escriba un programa que solicite 2 Escriba un programa que solicite 2 números y despliegue la suma de estos.números y despliegue la suma de estos.

Programa2:Programa2:Escriba un programa que solicite el Escriba un programa que solicite el nombre de un alumno, sus 3 nombre de un alumno, sus 3 calificaciones y despliegue los datos calificaciones y despliegue los datos capturados y el promedio.capturados y el promedio.

Page 46: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4646

Escriba un programa para cada inciso:Escriba un programa para cada inciso:

Escriba un programa para cada inciso:Escriba un programa para cada inciso:

3.3. Calcule el área de un circulo (area = pi x Calcule el área de un circulo (area = pi x r^2).r^2).

4.4. Calcule el área de un cuadrado.Calcule el área de un cuadrado.

5.5. Calcule el área de un rectángulo.Calcule el área de un rectángulo.

6.6. Calcule el área de un triángulo.Calcule el área de un triángulo.

Page 47: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4747

Programa 7: Escriba un programa que:Programa 7: Escriba un programa que:

a)a) Lea dos enteros que representan el peso de un objeto en Lea dos enteros que representan el peso de un objeto en libras y onzas.libras y onzas.

b)b) Imprima el peso introducido y su equivalente en Imprima el peso introducido y su equivalente en kilogramos. kilogramos.

c)c) Los datos de entrada deben acompañarse de mensajes Los datos de entrada deben acompañarse de mensajes adecuados solicitando el número de libras y onzas que adecuados solicitando el número de libras y onzas que pesa el objeto; y el resultado debe darse según el pesa el objeto; y el resultado debe darse según el siguiente ejemplo:siguiente ejemplo:

Un peso de 5 libras y 3 onzas equivale a 2.353 kilogramos.Un peso de 5 libras y 3 onzas equivale a 2.353 kilogramos.

NOTA: Una libra tiene 16 onzas y 2.2046 libras equivalen a NOTA: Una libra tiene 16 onzas y 2.2046 libras equivalen a un kilogramo. un kilogramo.

Page 48: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4848

this Y superthis Y super

Al acceder a variables de instancia de una clase, la palabra Al acceder a variables de instancia de una clase, la palabra clave clave thisthis hace referencia a los miembros de la propia clase hace referencia a los miembros de la propia clase

Aquí this.i se refiere al entero i en la clase Aquí this.i se refiere al entero i en la clase MiClaseMiClase..

public class MiClase { int i; public MiClase() {

i = 10; } // Este constructor establece el valor de i

public MiClase( int valor ) { this.i = valor; // i = valor }

public void Suma_a_i( int j ) { i = i + j; }

}

Page 49: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

4949

Si se necesita llamar al método padre dentro de una Si se necesita llamar al método padre dentro de una clase que ha reemplazado ese método, se puede hacer clase que ha reemplazado ese método, se puede hacer referencia al método padre con la palabra clave referencia al método padre con la palabra clave supersuper::

import MiClase; public class MiNuevaClase extends MiClase { public void Suma_a_i( int j ) {

i = i + ( j/2 ); super.Suma_a_i( j );

} }

public static void maun(String []args) {MiNuevaClase mnc = new MiNuevaClase(); mnc.Suma_a_i( 10 );

}

¿Qué valores toma i durante la ejecución del programa?

Page 50: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

Modifique los programas anteriores para Modifique los programas anteriores para usar el operador usar el operador thisthis..

5050

Page 51: Curso Lenguaje JAVA(Modificado 02-2010)

5. Estructuras de control5. Estructuras de control

5.1 5.1 bloques de instruccionesbloques de instrucciones

5.25.2 if-else if-else

5.35.3 switch switch

5.45.4 while while

5.5 5.5 do-whiledo-while

5.6 5.6 for for

Page 52: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5252

Bifurcaciones: sentencia ifBifurcaciones: sentencia ifLa sentencia de control if permite ejecutar o no una sentencia simple o compuesta según se cumpla o no una determinada condición.

Sintaxis: sentencia simple: sentencia compuesta:

Se evalúa expresion, si el resultado es cierto (valor diferente de 0), se ejecuta la sentencia_simple o la sentencia compuesta; en caso contrario se salta sentencia y continua en la línea_siguiente.

Ejemplo: public static void main(String []args)

{ int X = 10, y =0;if (x) {

y = x+100; x = x - 1;

System.out.println(“ y = “ + y + “, x= ” + x); }

}

if ( expresion ) sentencia_simple;línea_siguiente

if ( expresion ) { lista de sentencias}línea_siguiente

Page 53: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5353

Bifurcaciones:Bifurcaciones: sentencia if ... elsePermite realizar una bifurcación, ejecutando una parte u otra del programa según se cumpla o no una cierta condición.

Sintaxis: con sentencia simple: con sentencia compuesta:

if ( expresion ) if ( expresion ) { sentencia_1; lista_de_sentencias_1

else } else { sentencia_2; lista_de_sentencias_2

} Se evalúa la expresion:

Al terminar la sentencia correspondiente del if se prosigue en la línea siguiente del programa.

si el resultado de la evaluaciónes cierto (valor diferente de 0)

se ejecuta sentencia_1

si el resultado de la evaluaciónes falso (valor igual a 0)

se ejecuta sentencia_2

Page 54: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5454

Ejemplo:Ejemplo:

public static void main(String []args){ int num =0;int num =0; num =10;num =10;

ifif (num < 0 ) (num < 0 ) System.out.println(“El número “ + num + “es negativo \n”);System.out.println(“El número “ + num + “es negativo \n”); else else System.out.println(“El numero: “ + num + “es cero o es positivo”);System.out.println(“El numero: “ + num + “es cero o es positivo”); }}

Page 55: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5555

Bifurcaciones:Bifurcaciones: sentencia if ... else multiple

Esta sentencia permite realizar una ramificación múltiple, ejecutando una entre varias partes del programa según se cumpla una entre n condiciones. La forma general es la siguiente:

if ( expresion_1 ) sentencia_1;else if ( expresion_2 ) sentencia_2;else if ( expresion_3 ) sentencia_3;else if ( ... ) ...else sentencia_n;

Como en los demás casos las sentencias pueden ser simples o compuestas.

Se evalúa expresion_1. Si el resultado es cierto, se ejecuta sentencia_1

Si el resultado es falso, se salta sentencia_1 y se evalúa expresion_2. Si el resultado es cierto se ejecuta sentencia_2,

mientras que si es falso se evalúa expresion_3 y así sucesivamente.

Si ninguna de las expresiones o condiciones es ciertose ejecuta expresion_n que es la opción por defecto(puede ser la sentencia vacía, y en ese caso puede eliminarse junto con la palabra else).

Page 56: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5656

Ejemplo:Ejemplo:

public static void main(String []args){ int num =0;int num =0; num = 5; num = 5;

ifif (num >= 1 && num <= 10 ) (num >= 1 && num <= 10 ) System.out.println(“\n numero valido”);System.out.println(“\n numero valido”); else if (else if (num < 1 )num < 1 ) System.out.println(“\nNumero no valido (es menor a 1)”);System.out.println(“\nNumero no valido (es menor a 1)”); else if (else if (num > 10 )num > 10 ) System.out.println(“\nNumero no valido (es mayor a 10)”);System.out.println(“\nNumero no valido (es mayor a 10)”); System.out.println (“\nNumero tecleado: ” + num);System.out.println (“\nNumero tecleado: ” + num); }}

Page 57: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5757

Bifurcaciones:Bifurcaciones: sentencias if anidadas sentencias if anidadasUna sentencia if puede incluir otros if dentro de la parte correspondiente a su sentencia, A estas sentencias se les llama sentencias anidadas (una dentro de otra), por ejemplo:

public static void main(String []args)

{ float a,b, c; a= 10; b= 2;

if (a >= b) if (b != 0.0) {

c = a/b; System.out.println ( a + b+ c);System.out.println ( a + b+ c); }}} }

Page 58: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5858

Bifurcaciones:Bifurcaciones: sentencias if anidadas sentencias if anidadas

En principio se podría plantear la duda de a cuál de los dos if corresponde la parte else del programa.

Los espacios en blanco –las indentaciones de las líneas– parecen indicar que la sentencia que sigue a else corresponde al segundo de los if, y así es en realidad, pues la regla es que el else pertenece al if más cercano.

public static void main(String []args){ float a=4.0, b= 2.0; if (a >= b) if (b != 0.0)

c = a/b; else c = 0.0; System.out.println ( a + b +c);System.out.println ( a + b +c);} }

Ejemplo 2:

Page 59: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

5959

Bifurcaciones: Bifurcaciones: sentencia switchLa sentencia switch desarrolla una función similar a la de la sentencia if ... else con múltiples ramificaciones, aunque como se puede ver presenta también importantes diferencias. La forma general es la siguiente:

switch ( expresion ) {case expresion_cte_1:

sentencia_1;break;

case expresion_cte_2:sentencia_2;break;

...case expresion_cte_n:

sentencia_n;break;

default:sentencia;break;

}

Se evalúa expresion y se considera el resultado de dicha evaluación. Si dicho resultado coincide con el valor constante expresion_cte_n, se ejecuta sentencia_n.

Si ninguna expresion_cte coincide se ejecuta la sentencia que está a continuación de default.

Si la sentencia break se omite entonces se ejecutan las sentencias contiguas hasta encontrar una sentencia break.

Page 60: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6060

public static void main(String []args){

int x;X = 5;switch ( x ) {

case 1:System.out.println(“Uno\n”);break;

case 2: case 3:

System.out.println(“Dos\n”);System.out.println(“o tres\n”);break;

default:System.out.println(“Ni uno\n”);System.out.println(“Ni dos\n”);System.out.println(“Ni tres\n”);

}}

Ejemplo:Ejemplo:

Page 61: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6161

Programa 8:

Escriba un programa que lea los 3 lados (a,b,c) de un triángulo y determine si se trata de un triángulo equilátero, isóceles o escaleno.

Nota: El programa principal deberá de leer los valores a, b y c.Se deberá implementar 2 constructores: el primero no

recibe parámetros, y el segundo recibe las longitudes de los 3 lados.

If-elseIf-else

Page 62: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6262

Un banco necesita un programa para conocer cuál es la conversión de una cierta cantidad de pesos a dólares, libras, euros o yenes. Los datos son:

clave, cant, tipocambioDonde:clave entero que indica la moneda extranjera a la que se desea

convertir (1 = dólares, 2 = libras, 3= euros, 4= yenes).cant entero que indica la cantidad en pesos a convertir. tipocambio real que indica la equivalencia de la moneda en el momento del cálculo.

Salida:cant pesos equivalen a conversión moneda.

Ejemplo, si se convirtieron 1000 pesos a dólares a una equivalencia de $10.00 el resultado sería:

1000 pesos equivalen a 100.00 dólares.

Programa 9:

Page 63: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6363

Programa 10: Modifique el ejercicio 9 sustituyendo los if´s por switch

Programa 11:

La calificación final de una materia se compone de:55% del promedio de los tres exámenes parciales.30% de la calificación del examen final.15% de la calificación del trabajo final.

Un alumno aprueba esta materia si su calificación final es mayor o igual a 6 y el promedio de sus tres exámenes parciales es mayor o igual a 6 y la calificación de su examen final es mayor o igual a 6. Escriba un programa que lea las calificaciones de los cuatro exámenes y el trabajo final e imprima la calificación final o “NA”, según corresponda.

Page 64: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6464

Ciclos: Sentencia whileCiclos: Sentencia whileEsta sentencia permite ejecutar repetidamente (mientras se cumpla una determinada condición) una sentencia o bloque de sentencias.

Sintaxis:

Se evalúa la expresion_de_control:

si el resultado es falso se salta sentencia y se prosigue la ejecución. si el resultado es cierto se ejecuta la sentencia (o la lista_de_sentencias) y se

vuelve a evaluar la expresion_de_control. La ejecución de sentencia prosigue hasta que expresion_de_control se hace falsa.

Alguna variable de las que intervienen en la expresion_de_control deberá ser modificada dentro del ciclo y eventualmente esto obligará a que la expresion_de_control se haga falsa pues si no el ciclo continuaría indefinidamente.

while ( expresion_de_control )sentencia;

línea_siguiente

while ( expresion_de_control ) {lista de sentencias;

}línea_siguiente

Page 65: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6565

Practica 12Practica 12

Escriba un programa que imprima los Escriba un programa que imprima los primeros primeros nn números naturales pares. números naturales pares.

Practica 13Practica 13

Escriba un programa que imprima los Escriba un programa que imprima los números impares dentro de un rango números impares dentro de un rango (limite inferior y limite superior).(limite inferior y limite superior).

Los limites pueden ser números negativos Los limites pueden ser números negativos

Page 66: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6666

Ciclos: Sentencia do-whileCiclos: Sentencia do-whileLa sentencia do-while es un ciclo repetitivo que primero ejecuta la sentencia o bloque de sentencias y después evalúa la expresion_de_control.

Sintaxis:

1. Primero entra a ejecutar la sentencia o lista de sentencias del do-while2. Después evalúa la expresion_de_control:

si el resultado es falso termina el ciclo de repetición y prosigue la ejecución del programa.

si el resultado es cierto regresa a ejecutar la sentencia (o la lista_de_sentencias) y se vuelve a evaluar la expresion_de_control. La ejecución de sentencia prosigue hasta que expresion_de_control se hace falsa.

Alguna variable de las que intervienen en la expresion_de_control deberá ser modificada dentro del ciclo y eventualmente esto obligará a que la expresion_de_control se haga falsa pues si no el ciclo continuaría indefinidamente.

do sentencia;

while ( expresion_de_control );línea_siguiente

do {lista de sentencias;

} while ( expresion_de_control ); línea_siguiente

Page 67: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6767

Practica 14Practica 14

Escriba un programa que imprima el Escriba un programa que imprima el factorial de un número n. factorial de un número n.

Practica 15Practica 15

Modifique el programa anterior para que Modifique el programa anterior para que permita calcular más de un factorial.permita calcular más de un factorial.

Page 68: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6868

Ciclos: Sentencia forCiclos: Sentencia forLa sentencia for es un ciclo repetitivo que antes de comenzar a ejecutarse ejecuta una sentencia denominada de inicialización. Esta sentencia normalmente se emplea para preparar el desarrollo del ciclo for.

Sintaxis:

antes de comenzar el ciclo for se ejecuta la sentencia de inicialización, una vez ejecutada la sentencia de inicialización :

se verifica si la expresión_de_control es verdadera (diferente de cero) si es así, se ejecuta la sentencia (simple o compuesta).

Al terminar de ejecutar la sentencia se procesa la sentencia de actualización, esta sentencia normalmente alterará alguna variable que interviene en la expresión_de_control con el fin de que eventualmente la expresión se haga falsa.

El ciclo se repite hasta que la expresión_de_control se hace falsa (valor igual a cero).

for (inicialización; expresión_de_control; actualización)sentencia;

for (inicialización; expresión_de_control; actualización) {lista de sentencias;

}

Page 69: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

6969

Ejemplo:Ejemplo:

Explicación:Explicación:

1. Se inicializa i=0 (1. Se inicializa i=0 (inicializacióninicialización).).2. Se evalúa i<10 (2. Se evalúa i<10 (expresión de controlexpresión de control) )

si la si la expresión de controlexpresión de control es es cierta cierta (diferente de cero)(diferente de cero) 3. Se imprime el valor de i (3. Se imprime el valor de i (sentenciasentencia)) 4. Se incrementa i en 1, (4. Se incrementa i en 1, (actualizaciónactualización)) 5. Se regresa al paso 25. Se regresa al paso 2

si la si la expresión de controlexpresión de control es es falsafalsa (igual a cero) (igual a cero) 6. Se continua sin ejecutar ni la 6. Se continua sin ejecutar ni la sentenciasentencia ni la ni la actualizaciónactualización

int i;int i;..........forfor (i=0 ; i<10 ; i++) (i=0 ; i<10 ; i++)

System.out.println(i);System.out.println(i);..........

Page 70: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7070

Practica 16Practica 16

Escriba un programa que lea un número natural Escriba un programa que lea un número natural y determine si es un número primo.y determine si es un número primo.

Practica 17Practica 17

Escriba un programa que imprima solo los Escriba un programa que imprima solo los número primos que se encuentren en un rango número primos que se encuentren en un rango inferior y un rango superior, los rangos podrán inferior y un rango superior, los rangos podrán ser positivos o negativos .ser positivos o negativos .

Page 71: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7171

Practica 18 Practica 18

Modifique el programa de Modifique el programa de ConversionConversion para para que imprima una tabla de equivalencia entre que imprima una tabla de equivalencia entre grados centígrados y grados Fahrenheir.grados centígrados y grados Fahrenheir.

Los cálculos deben realizarse para un Los cálculos deben realizarse para un intervalo de -30 a 180 grados centígrados intervalo de -30 a 180 grados centígrados con un incremento de 6 grados. con un incremento de 6 grados.

Page 72: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7272

class Conversion { //definición de constantes static int limiteInf = -30; static int limiteSup = 180; static int incremento = 5; //función principal public static void main(String []args){ //definicion de variables locales int gcentigrados; float gfahrenheir = 0; CGrados grados = new CGrados(); //creación del objeto CGrados gcentigrados = limiteInf; while (gcentigrados <= limiteSup) { grados.AsignarGradosC(gcentigrados); gfahrenheir = grados.CalculaGradosF(); System.out.println("grados centigrados: " + grados.ObtenerGradosC()); System.out.println("grados Fahrenheir: " + gfahrenheir); gcentigrados += incremento; } } }

Page 73: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7373

Practica 18Practica 18

Escribe un programa que lea un número Escribe un programa que lea un número natural N y dibuje un triángulo de natural N y dibuje un triángulo de asteriscos con base y altura N. asteriscos con base y altura N.

Por ejemplo si N=5 debería dibujarse:Por ejemplo si N=5 debería dibujarse: ** * ** *

* * ** * * * * * ** * * * * * * * ** * * * *

Page 74: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7474

Practica 19Practica 19Escribe un algoritmo que lea un número Escribe un algoritmo que lea un número natural N y un carácter. La salida debe ser un natural N y un carácter. La salida debe ser un rombo compuesto del carácter y de la anchura rombo compuesto del carácter y de la anchura que especifica el número N. Por ejemplo, si N que especifica el número N. Por ejemplo, si N es 5 y el carácter es *, el rombo sería:es 5 y el carácter es *, el rombo sería:

** * ** * * * ** * * * * * ** * * * * * * * ** * * * * * * * ** * * * * * ** * * * ** * **

Page 75: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7575

ExcepcionesExcepciones

Las excepciones en Java son objetos de Las excepciones en Java son objetos de clases derivadas, de la clase clases derivadas, de la clase

ThrowableThrowable definida en el paquete definida en el paquete java.lang java.lang

Page 76: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7676

Sintaxis:Sintaxis:try

{

//código de la aplicación

}

catch (clase_de_excepción e)

{

//código de tratamiento de esta excepción

}catch (otra_clase_de_excepción e){

//código de tratamiento de esta excepción}finally{

//código que siempre se ejecuta}

Page 77: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7777

Funcionamiento:

Si el código de la aplicación no puede realizar alguna operación, se espera lance una excepción que será tratada por el código de tratamiento especificado para esa clase de excepción.

Page 78: Curso Lenguaje JAVA(Modificado 02-2010)

[email protected]

Ing. Patricia Del Valle Morales, M en C Gabriel Castillo Hernández

[email protected]

7878

ThrowableThrowable

Exception

RuntimeException

ClassNotFoundException

IOException

EOFException

Error