Introducción a la Programación en Java Unidad 3 Fundamentos del Lenguaje Java. 3.1 Estructura de un programa una aplicación independiente (Stand Alone) Paquetes de Clases Modificador de Acceso Class Nombre de Clase Declaración de variables miembros de la clase Constructores Métodos de la clase 3.2 Primer programa en Java El paquete Java.lang importa por default cualquier programa Java. Por eso no necesario escribirlo. se en de es public: indica que la clase y el método pueden ser utilizados por cualquier clase. static: indica que un método puede ser utilizado aunque no se haya creado ningún objeto de la clase import java.lang; public class Ejemplo{ public static void main(String Args[]){ } } System.out.printl("Hola"); void: indica que el método no regresa Lista de parámetros provenientes del En java las clases se agrupan en paquetes, para utilizar las clases de un paquete a un programa se tiene que indicar al compilador a través de la línea import java.lang; La línea public class Ejemplo declara la clase llamada Ejemplo. La clase y el archivo donde ésta se grabará deben llevar el mismo nombre, solo que el archivo tendrá la extensión java; esto es Ejemplo.java. Se acostumbra que la llave que marca el inicio de la clase se escriba inmediatamente después de la declaración de la clase. En Java todo está agrupado en clases, no se puede definir una variable o una función que no pertenezca a una clase. La línea public static void main(String args[]) define el método principal de la aplicación, dicho método siempre lleva el nombre main y es el punto de partida desde el cual se llama a los otros métodos de la aplicación. El método main va acompañado de los siguiente modificadores public: indica que este método puede ser utilizada por cualquier clase. static: indica que es un método de clase, es decir, un método que puede ser utilizado aunque no se haya creado ningún objeto de la clase Ejemplo. void: indica que este main no regresa valores. Ing. Alma Leticia Palacios Guerrero 9 Introducción a la Programación en Java Enseguida del nombre del método aparecen los argumentos o parámetros. En el caso de main() el argumento es siempre un vector o arreglo de objetos de la clase String. La línea System.out.printl("Hola"); envía a la pantalla el mensaje “Hola”. out es el nombre de un objeto de la clase System. Este objeto contiene el método estático println que se encarga de enviar mensajes a la pantalla. En java las llaves marcan el inicio y final de un bloque. 3.7 Edición, Compilación y Ejecución de programas .java. Edición. Los programas Java pueden generarse en cualquier editor de texto, por ejemplo Edit, Notepad, Wordpad y Notepad ++ , etc. Solo se requiere que el archivo sea grabado como tipo texto. El nombre del archivo no puede incluir espacios. Compilación: Para que el sistema operativo localice y ejecute el compilador se debe agregar a la variable de ambiente PATH, la ruta donde se encuentra el compilador javac.exe. La línea set PATH despliega en pantalla el contenido de PATH. Si la ruta de javac.exe no esta incluída como en la figura, será necesario agregarla en forma manual. Para agregar javac.exe a Path ejecute la línea de comando SET PATH=%PATH%;C:\JDK1.4.2_05\BIN Ahora ya puede compilar el programa con la línea javac Ejemplo.java. Cabe mencionar que el nombre del archivo debe escribirse de igual tal como fue nombrado el archivo .java ya que Java es sensible al uso de mayúsculas y minúsculas. Si el compilador encontró errores los mostrará en la pantalla. Si no hay errores entonces Javac produce un archivo del mismo nombre que el compilado, pero con extensión .class, este el bytecode. El programa .class se ejecuta a través de la máquina virtual de java (JRE Java Runtime Environment) con la línea java Ejemplo. Nótese que aquí ya no requiere la extensión del archivo. Ing. Alma Leticia Palacios Guerrero 10 Introducción a la Programación en Java 3.3 Identificadores Los nombres de variables, objetos, clases, etc. son “case sensitive”, esto es, son sensibles a mayúsculas y minúsculas. De esta forma, casa, Casa y CASA se considera como tres variables distintas entre sí. Las reglas del lenguaje respecto a la nomenclatura de variables son muy amplias, pero para facilitar la lectura y las tareas de mantenimiento, comúnmente se siguen ciertas normas: 1. Los nombres de variables se escriben generalmente con minúsculas, pero si el nombre consta de más de una palabra se escriben una seguida de la otra sin espacios, usando mayúscula para la marcar el inicio de la siguiente palabra. Por ejemplo: calcularSueldoDiario, verificarFechaDeExpedicion, abrirVentana, etc. 2. Los identificadores no pueden ser palabra reservadas como main, true, false, public, etc. 3. No deben tener el mismo nombre que otras variables declaradas en el mismo ámbito. 4. Los nombres de objetos, métodos y variables miembro comienzan con minúscula, ejemplos: main(), imprimir(), encuentraMayor(), sueldoDiario, diasTrabajados,etc. 5. Los nombres de clases e interfaces comienzan siempre con mayúscula. Ejemplos: MiClase, Circulo, Graphics, etc. 6. Las constantes se escriben con mayúscula. Por ejemplo PI, IVA, etc. 3.4 Palabras reservadas Existe una serie de palabras reservadas las cuales tienen un significado especial para Java y por lo tanto no se pueden utilizar como nombres de variables. Dichas palabras son: transient short long for continue abstract try static native goto* default boolean void super new if do break volatile switch null implement double byte while synchroniz package s else case ed private import extends catch this protected instanceof final char throw public int finally class throws return interface float const* (*) son palabras reservadas, pero no se utilizan en la actual implementación del lenguaje Java. 3.5 Comentarios Un comentario es información que el programador agrega al programa con el fin de identificar el programa, autor, módulo; explicar una parte del programa, proporcionar ayuda para una modificación posterior. Los comentarios pueden ser de dos tipos: Bloque de comentarios. El bloque de comentarios está formado por una o más líneas. El inicio del bloque se marca con /* y el final se marca con */. Línea de Comentarios. Inician con // y terminan al final de la línea. 3.6 Variables. Java almacena datos a través de variables y objetos. Una variable almacena solo un dato a la vez, en cambio un objeto es una instancia de una clase que puede o no contener mas de una variable de diferente tipo. Las variables tienen una existencia y alcance limitadas al método en que fueron creadas; es decir la variable solamente puede ser utilizada dentro del método en que fue creada y existirá mientras el mismo método exista. Ing. Alma Leticia Palacios Guerrero 11 Introducción a la Programación en Java 3.7 Tipos de Datos. Además de las referencias a objetos existen 8 tipos de datos primitivos: Tipo Tamaño en bytes Rango de Valores int 4 -2,147,483,648 a 2,247,483,642 short 2 -32,768 a 32,767 long 8 -9,223,372,036,854,775,808 a 9,223,372,036,854,775,808 byte 1 -128 a 127 float 4 -+3.40282347E+38F (6-7 dígitos decimales) double 8 -+1.797 ….. +308 (15 dígitos) char 2 65,536 caracteres (unicode) boolean 1 true, false Los tipos primitivos de Java tienen algunas características importantes que se resumen a continuación: 1. El tipo boolean no es un numérico: sólo admite true o false. No se identifica con el igual o diferente de cero, como en C/C++. 2. El tipo char contiene caracteres en código UNICODE (incluye el código ASCII). 3. byte, short, int y long son enteros que positivos o negativos. En Java no hay enteros unsigned. 4. Los tipos float y double son valores de punto flotante con 6-7 y 15 cifras decimales equivalentes, respectivamente. 5. Existen extensiones de Java 1.5 para aprovechar la arquitectura de los procesadores Intel, que permiten realizar operaciones de punto flotante con una precisión extendida de 80 bits. 3.8 Definición e inicialización de variables simples Una variable se define especificando su tipo y nombre. Estas variables pueden ser de tipos primitivos o referencias a objetos. Las variables de tipo referencia se inicializan a null, para que tengan un valor es necesario que crear un objeto con el operador new. Este operador reserva en la memoria espacio para el objeto incluyendo sus variables y métodos. La sintaxis para definir una variable es: ejemplo: <tipo> < nombre_variable>; int alumnos; La inicialización de una variable al momento de declararla es opcional, la sintaxis es la siguiente: ejemplos <tipo> < nombre_variable>=<valor>; float dolar=11.30; Ejemplo de declaración e inicialización de variables class DeclaraVariables{ public static void main(String[] args) { int entero=0; char letra='a'; String cadena=null; double doble=0; boolean logica=true; System.out.println("Entero= "+entero); System.out.println("La variable char contiene al iniciar " + letra); System.out.println("La variable logica tiene "+ logica); System.out.println("La variable doble tiene "+ doble); System.out.println("La referencia a un objeto es " +cadena); } } Ing. Alma Leticia Palacios Guerrero Pág. 12 Introducción a la Programación en Java Ejemplo de declaración e inicialización de Literales class CreaLiterales{ public static void main(String[] args) { char letra1='a'; char letra2='\u0057'; char letra3=(char)87; char letra4='\r'; } } System.out.println("Letra1=" + letra1); System.out.println("Letra2=" + letra2); System.out.println("Letra3=" + letra3); System.out.println("Letra4=" + letra4); 3.8.1 Declaración e inicialización de arreglos Un arreglo es un conjunto de variables del mismo tipo con el mismo nombre, identificadas por un índice. Las variables ocupan posiciones de memoria consecutivas. Pasos para declarar un arreglo 1) Declaración. Especificar el tipo de dato que guardara el arreglo. 2) Alojar en memoria. El operador new se encarga de hacer la petición de memoria de tamaño suficiente para alojar el arreglo. La sintaxis para declarar un arreglo es: Ejemplo: <tipo> <nombre><[tamaño]>; int dias[]; En el ejemplo anterior el arreglo dias aún no ha sido alojado en memoria. Para eso es necesario definirlo con el operador new. Definición: dias= new int[20]; Ahora el arreglo dias esta formado por un conjunto de 20 enteros consecutivos. La declaración y definición de un arreglo se puede llevar a cabo en un sólo paso: int dias[]=new int[20]; Ejemplo de Declaración e inicialización de Arreglos Unidimensionales class CreaArreglos { public static void main(String [] Args) { int vector[]; vector=new int[5]; int arreglo1 []= new int[5]; // Se inicializa con ceros int arreglo2 [] ={5,67,40,84,686}; for (int i=0;i<5;i++) for (int i=0;i<5;i++) for (int i=0;i<5;i++) } System.out.println("Vector["+ i + "]= "+ vector[i]); System.out.println("Arreglo1["+i+"]= " + arreglo1[i]); System.out.println("Arreglo2["+i+"]= " + arreglo2[i]); } Ing. Alma Leticia Palacios Guerrero Pág. 13 Introducción a la Programación en Java Ejemplo de Declaración e inicialización de Arreglos Bidimensionales class CreaMatriz{ public static void main(String args[]){ int i, j, ren=3, col=4; int matriz1[][]= new int[ren][col]; int matriz2[][]={{2,4,6,8},{10,12,14,16},{18,20,22,24}}; System.out.println("Matriz 1"); for (i=0;i<ren;i++) for (j=0;j<col;j++){ System.out.println("Elemento("+i+","+j+")= "+matriz1[i][j]); } } System.out.println("Matriz 2"); for (i=0;i<ren;i++) for (j=0;j<col;j++) System.out.println("Elemento("+i+","+j+")= "+ matriz2[i][j]); } 3.9 Operadores de Java Java tiene una gran variedad de operadores, casi idénticos a los de C/C++. 3.9.1 Operadores aritméticos Se dice que son operadores binarios porque requieren de dos operandos. Realizan las operaciones aritméticas: Operación Símbolo suma + resta multiplicación * división / división módular % 3.9.2 Operadores de asignación El operador de asignación es el símbolo igual (=). La forma general de asignación con este operador es: variable = valor o expresión; Ejemplos: a=3; x=y+z; 3.9.3 Operadores acumulativos Los operadores acumulativos realizan la operación considerando como primer operador el valor a la izquierda de la expresión y como segundo operador el valor que se escriba a la derecha. El resultado se guarda en la variable de la izquierda; es decir el operador de la izquierda tiene una doble función: es el primero operando y es la variable donde se guarda el resultado. Operador Ejemplo += x+=y equivale a x=x+y; -= x-=y equivale a x=x-y; *= x*=y equivale a x=x*y; /= x/=y equivale a x=x/y; %= x%=y equivale a x=x%y; Si x=3; y y=2 al ejecutar x+=y el valor final de x sería 5. Ing. Alma Leticia Palacios Guerrero Pág. 14 Introducción a la Programación en Java 3.9.4 Operadores Unarios ++ y -Los operadores se pueden utilizar de dos formas: 1. Precediendo a la variable. Primero se incrementa la variable y luego se utiliza en la expresión en la que aparece. 2. Siguiendo a la variable . En este caso primero se utiliza la variable en la expresión y luego se incrementa. Ejemplo de operadores aritméticos, unarios y acumulativos public class Operadores { public static void main(String[] args) { int a=5,b=10; int j = 1; int c= a + b; System.out.println("Operadores Aritmeticos"); System.out.println(a + "+" +b + " = " + c); c= a - b; System.out.println(a + "-" +b + " = " + c); c= a * b; System.out.println(a + "*" +b + " = " + c); c= a / b; System.out.println(a + "/" +b + " = " + c); c=b % a; System.out.println(b + " modulo " + a + " = " + c); b+=3; c=b % a; System.out.println(b + " modulo " + a + " = " + c); System.out.println("Operadores Unarios"); System.out.println("Valor inicial de a " + a); System.out.println("Con +a= " + ++a); System.out.println("Valor inicial de b " + b); System.out.println("Con b-- = " + b--); } } 3.9.5 Operador condicional ? Este operador heredado de C/C++, permite evaluar condiciones sencillas. Su sintaxis es: Condición ? acción1 : acción2; donde se evalúa Condición si la condición se cumple se ejecuta la acción1 y si no se cumple entonces se ejecuta la acción2. Es el único operador ternario de Java. Como todo operador que devuelve un valor, puede ser utilizado en una expresión. Por ejemplo en las líneas: x=1 ; y=5; z = (x<y)? 3: 8; z tendría el valor 8 porque la condición no se cumple. Ejemplo de Operador Ternario public class OperadorTernario{ public static void main(String Args[]){ int a=16,b=10, x=0; x=(a>b)? 3:5; System.out.println("X= " +x); } } Ing. Alma Leticia Palacios Guerrero Pág. 15 Introducción a la Programación en Java 3.9.6 Operadores relacionales Los operadores relacionales son >,<,<=,<=,!=,==.El resultado de estos operadores es siempre un valor booleano. Operación Símbolo > Mayor que < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que != Diferente == Igual 3.9.7 Operadores lógicos Operador && || ! Nombre And Or Not Sintaxis op1 && op2 op1 || op2 !op Resultado true si op1 y op2 son true. true si op1 u op2 son true. true si op es false. false si op es true. 3.9.8 Operador de concatenación de cadenas (+) El operador más (+) se utiliza también para concatenar cadenas de caracteres. Por ejemplo: System.out.println("El total asciende a "+result + " unidades"); 3.9.9 Jerarquía de los operadores El orden en que se realizan las operaciones muchas veces determina el resultado de una expresión. La siguiente lista muestra el orden en que se ejecutan los distintos operadores en un instrucciones: 1 2 3 4 5 6 7 8 multiplicativos aditivos relacionales igualdad AND OR condicional asignación */% +< > <= >= == != && || ?: = += -= *= /= %= &= ^= |= En Java, todos los operadores binarios, excepto los operadores de asignación, se evalúan de izquierda a derecha. Los operadores de asignación se evalúan de derecha a izquierda, lo que significa que el valor de la derecha se copia sobre la variable de la izquierda. Ing. Alma Leticia Palacios Guerrero Pág. 16 Introducción a la Programación en Java 3.10 Entrada de datos String desde teclado La mejor forma de leer desde el teclado es usar la clase BufferedReader, la cual soporta un flujo de entrada desde un buffer de memoria, pero no se puede construir un BufferedReader directamente de System.in. Primero debe convertirse a un flujo de caracteres a través de la clase InputStreamReader. El código sería el siguiente: import java.io.*; public class LeeTeclado { public static void main(String[] args) { InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String nombre=new String(); System.out.println("Como te llamas"); try{ } nombre = lector.readLine(); catch (IOException excep) { System.out.println("Error de IO"); } System.out.println("Hola "+ nombre ); } } En Java al igual que en otros lenguajes de programación, la lectura de un flujo puede generar un error. A estos errores en Java se les conoce como excepciones. Las excepciones pueden ser tratadas de varias formas, una de ellas es con el bloque try-catch, el bloque try contiene el bloque que pudiera generar la excepción, el bloque catch contiene las instrucciones a seguir. Si no se genera ninguna excepción entonces la ejecución continua en la línea que siga al bloque catch. 3.11 Entrada de datos numérica public class LeeNumeros { public static void main(String[] args) { } } } InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); int e=0; System.out.println("Cuantos años tienes?"); try{ auxiliar = lector.readLine(); Integer edad=new Integer(auxiliar); e=edad.intValue(); } catch (IOException excep) { System.out.println("Error"); System.out.println("Hola "+ e*12); El procedimiento de lectura es exactamente igual al de lectura de cadenas, lo que cambia es que después de leer la cadena, esta se usa como argumento para construir un objeto entero Entero, en la siguiente línea el método intValue extrae del objeto Integer el valor int que el usuario escribió y es asignado a una variable int para su posterior uso. Ing. Alma Leticia Palacios Guerrero Pág. 17 Introducción a la Programación en Java 3.12 Estructuras de Control. En la mayor parte de los lenguajes de programación, las de estructuras son similares en cuanto al concepto, aunque la sintaxis puede cambiar de un lenguaje a otro. La sintaxis de Java similar a la de C y C++, lo que significa que para un programador de C y C++ la sintaxis de Java no tiene dificultad. Instrucción: Una instrucción es una expresión que acaba en punto y coma (;). Se permite incluir varias instrucciones en una línea, aunque lo habitual es utilizar una línea para cada instrucción. Por ejemplo: i =0;j =5;x =i +j;// Línea compuesta de tres instruccioness 3.12.1 Condición simple If: Esta estructura permite ejecutar un conjunto de instrucciones en función del valor que tenga la expresión de comparación (se ejecuta si la expresión de comparación tiene valor true). Tiene la forma siguiente: if (Condición){ instrucciones; } Las llaves no son necesarias si sólo hay una instrucciones dentro del if. La estructura if tiene una parte opcional que se ejecutará cuando la condición no se cumple (false). if (Condición{ instrucciones1; } else { instrucciones2; } 3.12.1.1 Ejemplo del uso de la Estructura If import java.io.*; import java.util.Random; public class EstructuraIf{ public static void main(String[] args) { InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); Random azar=new Random(); int aleatorio=azar.nextInt(1000); int usuario=0; System.out.println("Escribe un numero"); try{ } } auxiliar = lector.readLine(); Integer objetoEntero=new Integer(auxiliar); usuario=objetoEntero.intValue(); } catch (IOException excep) { System.out.println("Error"); } if (aleatorio>usuario) System.out.println(aleatorio + " es mayor que " + usuario); else System.out.println(usuario + " es mayor que " + aleatorio); Ing. Alma Leticia Palacios Guerrero Pág. 18 Introducción a la Programación en Java 3.12.1.1 Ejemplo de If Anidados import java.util.Random; public class EstructuraIfAnidado{ public static void main(String[] args) { Random azar=new Random(); int a=azar.nextInt(10); int b=azar.nextInt(10); int c=azar.nextInt(10); System.out.println("Los lados del triangulo son a= " +a + " b= "+b+" c= " + c); if (a==b&&b==c) System.out.println("Es un Triangulo Equilatero"); else if(a!=b && b!=c) System.out.println("Es un Triangulo Escaleno"); else System.out.println("Es un Triangulo Isosceles"); } } 3.12.1 Condición Múltiple Switch-Case Switch case es una alternativa a un conjunto de if-else anidados cuando se evalúa la misma condición con distintos valores. Su forma general es la siguiente: switch (expresión) { case valor1: instrucciones1; break; case valor2: instrucciones 2; break; case valor3: instrucciones 3; break; case valor4: instrucciones 4; break; default: instrucciones 7; } No se pueden establecer rangos o condiciones sino que se debe comparar con valores concretos. Si ningún caso se cumple entonces se ejecuta el case default, el cual es opcional. 3.12.1.1 Ejemplo del uso de la Estructura Switch-Case import java.io.*; public class EstructuraSwitchCase{ public static void main(String args[]){ InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); int opc=0; System.out.println("1) Saludo "); System.out.println("2) Numeros"); System.out.println("3) Salida"); System.out.println("Opcion "); try{ auxiliar = lector.readLine(); Integer objetoEntero=new Integer(auxiliar); opc=objetoEntero.intValue(); } catch (IOException excep) { System.out.println("Error "); } switch( opc){ case 1: System.out.println("Bajo Construccion"); break; case 2: System.out.println("Bajo Construccion"); break; case 3: System.out.println(" Adios "); break; default: System.out.println(" Opcion Invalida"); } } } Ing. Alma Leticia Palacios Guerrero Pág. 19 Introducción a la Programación en Java 3.13 Estructuras Iterativas 3.13.1 Ciclo while En el ciclo while la condición se evalúa siempre antes de ejecutar las instrucciones. Si la condición se cumple se ejecuta el bloque; si la condición es falsa el ciclo termina. En este ciclo puede ocurrir que la condición de entrada no se cumpla y las instrucciones no se ejecuten ni una sola vez; debido a esto al ciclo while se le conoce también como ciclo por centinela. while (condición) { instruccion1; instrucción2; instrucción3; ... instrucciónN } 3.13.1.1 Ejemplo de la Estructura Iterativa while El siguiente programa genera la serie ULAM, esta serie sostiene que a partir de cualquier número entero positivo se puede obtener el número 1 de acuerdo a los siguientes criterios: - Si el número es par se divide entre 2. - Si el número es impar se multiplica por 3 y se le suma 1. import java.io.*; public class EstructuraWhile{ public static void main(String[] args) { InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); int numero=1; System.out.println("Escribe un numero"); try{ auxiliar = lector.readLine(); Integer objetoEntero=new Integer(auxiliar); numero=objetoEntero.intValue(); } catch (IOException excep) { System.out.println("Error"); } } } while (numero>1) { if ( numero%2==0) numero/=2; else numero=numero*3+1; System.out.println(numero); } Ing. Alma Leticia Palacios Guerrero Pág. 20 Introducción a la Programación en Java 3.13.2 Ciclo for Al igual que for, evalúa la condicion antes de cada iteración si esta se cumple ejecuta las instrucciones en caso contrario el ciclo termina. La forma general del Ciclo for es la siguiente: for (inicialización; expresión; cambio) { instrucciones; } donde: inicialización: el valor inicial que se le da a la variable de control. Puede haber mas de una variable de control. expresión: Es una condición que determina el final del ciclo, puede estar formada por más de una expresión unidas con operadores lógicos. cambio: Es la variación positiva o negativa que tendrán la(s) variable(s) de control. 3.13.2.1 Ejemplo de la Estructura Iterativa for El siguiente ejemplo calcula y muestra el factorial de un número entero proporcionado por el usuario. import java.io.*; public class EstructuraFor{ public static void main(String[] args) { InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); int numero=1; System.out.println("Escribe un numero"); } for } try{ auxiliar = lector.readLine(); Integer objetoEntero=new Integer(auxiliar); numero=objetoEntero.intValue(); } catch (IOException excep) { System.out.println("Error"); long factorial=1; (int i=numero; i>1; i--) factorial*=i; System.out.println("El factorial de "+ numero + " es " + factorial); } Ing. Alma Leticia Palacios Guerrero Pág. 21 Introducción a la Programación en Java 3.13.3 Ciclo do-while Es similar al Ciclo while pero con la particularidad de que la evaluación de la condición se hace al final del Ciclo, por lo que esta garantizado que las instrucciones se ejecutan al menos la primera vez. do-while ejecuta las instrucciones luego se evalúa la condición: si resulta verdadera se vuelven a ejecutar las instrucciones; si la condición es falsa entonces finaliza el ciclo. Este ciclos se utiliza con frecuencia para la implementación de un menú. do { instrucción1; instrucción2; ... instrucciónN; } while (Expresión); 3.13.3.1 Ejemplo de la Estructura Iterativa do-while import java.io.*; import java.util.Random; public class EstructuraDoWhile{ public static void main(String[] args) { InputStreamReader teclado = new InputStreamReader(System.in); BufferedReader lector = new BufferedReader(teclado); String auxiliar=new String(); Random azar=new Random(); int maquina=azar.nextInt(1000); int usuario=1, intentos=0; do{ System.out.println("Escribe un numero"); try{ auxiliar = lector.readLine(); Integer objetoEntero=new Integer(auxiliar); usuario=objetoEntero.intValue(); } catch (IOException excep) { System.out.println("Error"); } intentos++; if (usuario!=maquina) if( usuario> maquina) System.out.println("El numero de la maquina es menor"); else System.out.println("El numero de la maquina es mayorr"); }while(usuario!=maquina); } } System.out.println("Adivinaste en " + intentos + " intentos"); Ing. Alma Leticia Palacios Guerrero Pág. 22 Introducción a la Programación en Java 3.14 Ejercicios 1) Suponga que existe un triángulo rectángulo con lados a,b, y c. Genere dos valores flotantes aleatorios para los lados a y b y utilizando el teorema de Pitágoras calcule y muestre la hipotenusa (c). La fórmula es c= raíz cuadrada. a 2 + b 2 . Consulte la ayuda del método sqrt para calcular la 2) Generar una tabla de conversion de pies a metros en un rango de 1 a 30 pies. Nota: Un pie son .3040 m. 3) Declare una matriz de 4 renglones por 4 columnas, asignando los siguientes valores que usted desee al momento de definirla. Hacer un método que realice las siguientes actividades. a) Encontrar y mostrar la suma de todos los elementos de la matriz. b) Mostrar la diagonal de la matriz y su suma. 4) Hacer un programa que obtenga la transpuesta de una matriz. Mostrar las matrices original y transpuesta. 5) Generar los primeros n números de la serie de Fibonacci: 0,1,1,2,3,5,8,13. Nota: n será proporcionado por el usuario. Ing. Alma Leticia Palacios Guerrero Pág. 23