Вы находитесь на странице: 1из 62

ELEMENTOS DEL

LENGUAJE JAVA.
UT2. PARTE I
Unidad de Trabajo 2
Mdulo: Programacin
Ciclo: 1 D.A.W.

TIPOS DE DATOS, VARIABLES Y


OPERADORES
0
1.
2.
3.
4.
5.
6.
7.
8.

Clases, atributos, mtodos y visibilidad.


Tipos de datos simples.
Comprobacin de tipos.
Literales y constantes.
Variables.
Conversin de tipos.
Operadores
Sentencias de control
Entrada / Salida Bsica

0. CLASES, ATRIBUTOS, MTODOS Y VISIBILIDAD.

Una clase est formada por:


Atributos o variables miembro: los datos que contiene la clase. Puede tener
cualquier nmero de atributos o ninguno. Se declaran con un nombre y el
tipo de dato que van a almacenar.
Mtodos o funciones miembro: que definen su comportamiento, permiten
cambiar los valores de los atributos que forman la clase.

Cualquier mtodo puede acceder a cualquier atributo de su clase. Pero para


poder acceder a atributos o mtodos de otras clases se establecen los
modificadores de acceso:
Public: cualquier otra clase puede acceder al miembro que lleve este
modificador.
Package (por defecto): se puede acceder a los miembros que lleven este
modificador solo desde las clases que pertenezcan a su mismo paquete.
Protected: Igual que la anterior, package, pero adems de aquellas clases
que hereden de la que lleva este modificador.
3
Private: solo pueden acceder a los miembros de su propia clase.

1. TIPOS SIMPLES
Java define cuatro grupos de datos simples: enteros,
nmeros en coma flotante, caracteres y booleanos.
ENTEROS

Nombre

Tamao
(bits)

Rango

byte
short
int

8
16
32

-128 a 127
-32.768 a 32.767
-2.147.483.648 a 2.147.483.747

long

64
4

1. TIPOS SIMPLES
NMEROS EN COMA FLOTANTE

Nombre

Tamao(bits)

float

32 (entre 6 y 7 cifras decimales)

double

64 (unas 15 cifras decimales)


CARACTERES

char

Es un tipo de 16 bits. Java utiliza UNICODE para


representar los caracteres.
Las variables char se comportan como enteros.

Cuando se escribe una declaracin tal como float notas se esta


indicando el espacio de memoria a reservar (4 bytes), que se podrn
guardar nmeros con decimales en ella y que se podrn realizar
operaciones aritmticas con ella.

1. TIPOS SIMPLES
boolean

BOOLEANOS
Slo puede tomar dos valores: true o
false.

El lenguaje Java utiliza el conjunto de caracteres Unicode,


que incluye no solamente el conjunto ASCII sino tambin
carateres especficos de la mayora de los alfabetos. As,
podemos declarar una variable que contenga la letra .

int ao=1999;
6

2. COMPROBACIN DE TIPOS
Java

es un lenguaje fuertemente tipeado:

Cada variable tiene un tipo.


Cada expresin tiene un tipo.
Cada tipo est definido estrictamente y es independiente
del procesador.
En todas las asignaciones (explcitas o por paso de
parmetros) se comprueba la compatibilidad de tipos.
No hay conversin automtica de tipos si existe conflicto.
Los tipos de datos en asignaciones se comprueban en
tiempo de compilacin.

3. LITERALES Y CONSTANTES
De tipo entero

Base decimal: 45
Base hexadecimal: 0x3A/0X3A
Base octal: 012

De tipo long

Base decimal: 1232333233323333L


Base hexadecimal: 0x565FFFFFL

3. LITERALES Y CONSTANTES
Coma flotante

Notacin estndar: 45.35

Notacin cientfica: 3.45e3


De tipo boolean: true, false

De tipo cadena: hola mundo


De tipo carcter: a, 3

Los caracteres que no se pueden teclear (salto prrafo,


tabulador) se representan con una secuencia de escape:

3. LITERALES Y CONSTANTES
Las constantes se declaran con la palabra final.
Cuando se declara una variable de tipo final, se ha de
inicializar y cualquier intento de modificarla en el curso
de la ejecucin del programa da lugar a un error en
tiempo de compilacin.
Normalmente, las constantes de un programa se suelen
poner en letras maysculas, para distinguirlas de las que
no son constantes. He aqu ejemplos de declaracin de
constantes.
Ejemplos:
final double PI=3.141592653589793;
final int MAX_DATOS=150;

10

4. VARIABLES
Java tiene tres tipos de variables:
De instancia
De clase
Locales
Las variables de instancia se usan para guardar los atributos de un objeto
particular.
Las variables de clase guardan datos que son los mismos para todos los objetos
de una determinada clase.
Las variables locales se utilizan dentro de mtodos o funciones y existen desde
el momento de su definicin hasta el final del bloque en el que se encuentran.
Ejemplo, una clase Crculo:
PI es una variable de clase y radio es una variable de instancia. PI guarda el
mismo valor para todos los objetos de la clase Circulo, pero el radio de cada
crculo puede ser diferente
class Circulo{
static final double PI=3.1416; //Variable de clase
11
double radio; // Variable de instancia
}

4. VARIABLES

Una variable se define especificando el tipo y el nombre:

tipo identificador [=valor][,identificador[=valor]...];


int a,b,c;
int d=3;
char c=a;
double pi=3.1416;
En Java, las variables locales se declaran en el momento en el
que son necesarias. Es una buena costumbre inicializar las
variables en el momento en el que son declaradas.
int x=0;
String nombre="Angel";
double a=3.5, b=0.0, c=-2.4;
boolean bNuevo=true;
12
int[] datos;

4. VARIABLES: PRIMITIVAS Y REFERENCIAS


Primitivas:

variables de tipos simples.


Referencias: variables que indican la direccin de
memoria dnde est almacenado un objeto.
El nombre de una clase.
Un array.

Se han de poner nombres significativos a las variables,


generalmente formados por varias palabras combinadas, la
primera empieza por minscula, pero las que le siguen
llevan la letra inicial en maysculas. Se debe evitar en todos
los casos nombres de variables cortos como xx, i, etc.
double radioCirculo=3.2;
13

4. VARIABLES: MBITO
Segn donde este declarada una variable, puede ser:

Variable miembro de una clase. Son los atributos. As se les


llama a las variables declaradas dentro de la clase, pero fuera
de cualquier mtodo.

Son compartidas por todos los mtodos de esa clase y suelen


declararse private para limitar su uso al interior de esa clase. Si el
programador no las inicializa lo hace el compilador de Java.

Variables locales. Son las variables que se declaran dentro de


un mtodo. Solo pueden ser usadas dentro de ese mtodo.
Java obliga a inicializarlas por el programador.
Variables de bloque. Son las declaradas dentro de un bloque
de instrucciones delimitado por llaves { }. Su mbito comienza
en el punto donde se declara la variable. Estn disponibles
desde su declaracin hasta el final del bloque donde se 14
declaran.

4. VARIABLES: MBITO

15

5. CONVERSIN DE TIPOS
Se

realizar una conversin automtica de tipos si:

Los dos tipos son compatibles.


El tipo destino es ms grande que el tipo origen
(ensanchamiento).

El

tipo boolean es incompatible con el resto.


La conversin de tipos distintos se hace por casting:

(tipo)variable

int a; byte b;

b=(byte)a; //Esto es casting

16

5. CONVERSIN DE TIPOS
Reglas

de promocin de tipos automtica en


expresiones:
En Java si se hacen operaciones matemticas tipos de datos
ms pequeos que int (char, byte o short), dichos valores
sern promocionados a int antes de realizar las operaciones
y el resultado ser un int.
Si un operando es de tipo long, la expresin completa se
promociona a long.
Si un operando es de tipo float, la expresin completa se
promociona a float.
Si alguno de los operandos es double, el resultado es
double.

17

5. CONVERSIN DE TIPOS
EJEMPLO:
int i = 7;
double f = 5.5;
char c = 'w';

Operacin
i+f
i+c
i + c 0
(i + c) (2 * f / 5)

Valor
12.5
126
78
123.8

Tipo
double
int
int
double

18

5. CONVERSIN DE TIPOS

19

6. OPERADORES
6.1. Operadores aritmticos
6.2. Operadores de asignacin
6.3. Operadores incrementales
6.4. Operadores relacionales
6.5. Operadores lgicos
6.6. Operador de concatenacin de cadenas de caracteres.
6.7. Operador condicional ?:
6.8. Precedencia de los operadores

20

6.1. OPERADORES ARITMTICOS


Operadores

Operadores

binarios:

*
/
%

unarios: + y , son los signos negativo y

positivo.
Los operandos deben ser de tipo numrico o de tipo
char.
La divisin de enteros produce un nmero entero. Si
queremos conservar el decimal hay que hacer un
casting.
int a=3; int b=2;
double div=(double)a/b;

21

6.1. OPERADORES ARITMTICOS


EJEMPLOS:
int a = 10, b = 3;
double v1 = 12.5, v2 = 2.0;
char c1='P', c2='T';
Operacin
a+b
a-b
a*b
a/b
a%b

Valor
13
7
30
3
1

Operacin
v1+v2
v1-v2
v1*v2
v1/v2
v1%v2

Valor
14.5
10.5
25.0
6.25
0.5

Operacin
c1
c1 + c2
c1 + c2 + 5
c1 + c2 + 5

Valor
80
164
169
217

22

6.2. OPERADORES DE ASIGNACIN


Permite

signo =.

asignar un valor a una variable con el


variable= expresin

El

tipo de la variable debe ser compatible con el


de la expresin asignada.
Se puede crear una cadena de asignaciones para
dar el mismo valor a varias variables.
x=y=z=10;
23

6.2. OPERADORES DE ASIGNACIN

Otros operadores de asignacin:

+=
-=
*=
/=
%=

i+=2 equivale a i=i+2


x*=n-3 equivale a
x=x*(n-3)

24

6.3. OPERADORES INCREMENTALES


Operador de incremento: ++
Operador de decremento: - Pueden utilizarse precediendo o siguiendo a la variable.

Ejemplos:
i++ o ++i; ambas incrementan la variable v
i- - o - -i; ambos decrementan la variable v
Pero:
j=i++; equivale a j=i; i++;
j=++i; equivale a i++; j=i;
25

6.4. OPERADORES RELACIONALES


Sirven

para realizar comparaciones.


Retornan como resultado un valor booleano.
==
!=
>
<
>=
<=

Los

operadores == y != se pueden utilizar con


cualquier tipo.
Los operadores de desigualdad slo se aplican a
26
tipos numricos y char.

6.4. OPERADORES RELACIONALES


EJEMPLO:
int a = 7, b = 9, c = 7;
Operacin
a==b
a >=c
b<c
a != c

Resultado
false
true
false
false

27

6.5. OPERADORES LGICOS


Operador

Descripcin

&&

AND en cortocircuito

||

OR en cortocircuito

NOT (operador unario)

&

AND

OR

Con

los operadores en cortocircuito no se evala el


operando de la derecha cuando est decidido el
resultado de la expresin a partir del operando de la
izquierda.
PROUT2P0 Condiciones lgicas

28

6.5. OPERADORES LGICOS


EJEMPLO:
int i = 7;
float f = 5.5;
char c = w;
Expresin
(i >= 6) && (c == w)
(i >= 6) || (c == 119)
(f < 11) && (i > 100)
(c != p) || ((i + f) <= 10)
i + f <= 10
i >= 6 && c == w
c != p || i + f <= 10

Resultado
true
true
false
true
false
true
true

29

RESUELVE
int i = 5, j = 7, x = 2, y = 2, z = 2;
float f = 5.5, g = -3.25;
Expresin
i += 5
f = g
j *= (i 3)
f /= 3
i %= (j - 2)
x *= -2 * (y + z) / 3

Expresin equivalente
i=i+5
f=fg
j = j * (i 3)
f=f/3
i = i % (j 2)
x = x * (-2 * (y + z) / 3)

Valor final
10
8.75
14
1.833333
0
-4

30

6.6. OPERADOR DE CONCATENACIN

El operador + se utiliza tambin para concatenar cadenas


de caracteres.
Ejemplo:
System.out.println(El resultado es + resul + unidades);

6.7. OPERADOR CONDICIONAL ?:

Sintaxis:
Expresin_lgica ? res1 : res2
Si la Expresin_lgica toma valor true, el operador devuelve
res1; en caso contrario, el operador devuelve res2.
(Atencin, no es que ejecuten las instrucciones que hay en res1 o res2, sino que devuelve el
valor de la expresin que hay en res1 o res2 y se lo asigna a la variable que hay en
expresin_lgica)
31

6.7. OPERADOR CONDICIONAL ?:


Ejemplo:
int i = 10, j;
j=(i < 0) ? 0 : 100;
Esta expresin asigna a j el valor 100. Su significado es: si el valor de i es menor que 0 asigna
a j el valor 0, sino asigna a j el valor 100. Como i vale 10, a j se le asigna 100.

Otros ejemplos :
int a=1, b=2, c=3;
c+=(a>0 && a<= 10) ? ++a : a/b; //a pasa a valer 2, y c pasa a valer 5
int a=50, b=10, c=20;
c+=(a>0 && a<=10) ? a++ : a/b; // c pasa a valer 25
32

6.8. PRECEDENCIA DE LOS OPERADORES


La tabla muestra el nivel de
precedencia de los operadores, los
de mas arriba tienen mayor
precedencia, los del mismo nivel
tienen igual precedencia.

Primeramente estn los unarios,


luego los aritmticos, despus los
de
bits,
posteriormente
los
relacionales, detrs vienen los
booleanos y por ltimo el operador
de asignacin. La regla de
precedencia establece que los
operadores de mayor nivel se
ejecuten primero.
Una expresin entre parntesis siempre se evala primero y si estn
anidados se evalan de ms internos a ms externos.

33

6.8. PRECEDENCIA DE LOS OPERADORES

Todos los operadores binarios, excepto los de asignacin, se


evalan de izquierda a derecha.
v+1++; primero v+1 y luego el incremento.

Los operadores de asignacin se evalan de derecha a


izquierda. Esto es lgico, ya que se debe calcular
primeramente la expresin antes de asignar un resultado a
una variable.
v=v+2-r+8; primero v+2-r+8 y luego la asignacin
Prctica para entregar:
PROUT2P1 Pequeos programas
34

7. SENTENCIAS DE CONTROL
1.
2.
3.

Sentencias de SELECCIN.
Sentencias de ITERACIN.
Sentencias de SALTO.

35

7.1. SENTENCIAS DE SELECCIN


Permiten que el programa elija distintos caminos de
ejecucin en funcin del resultado de la evaluacin de una
expresin.
Tipos:

if: condicional simple o doble.


switch: condicional mltiple.

36

SENTENCIAS DE SELECCIN: IF

Condicional simple:

if (condicin) {
sentencia/s;
}

Condicional doble:

if (condicin){
sentencia/s;
}
else{
sentencia/s;
}
Ejemplo:

condicin ser una


Expresin_Boolena que
devuelve true o false
Si solo hay una sentencia
no son necesarias las
llaves{}

if (num<3)
System.out.println("Su numero es menor que 3 " ) ;
else
System.out.println("Su numero es mayor o igual que 3 " ) ;

37

SENTENCIAS DE SELECCIN: IF

EJEMPLO. //Condiciones del IF

Condicionales anidadas:

if (condicin){
sentencia/s;
}
else if (condicin) {
sentencia/s;
}
else if (condicin) {
sentencia/s;
}
else {
sentencia/s;
}

if (num == 0)
{System.out.println("CERO!!" );}
else if(num == 1)
{System.out.println("UNO!!" );}
else if(num == 2)
{System.out.println("DOS!!" );}
else if (num == 3)
{System.out.println("TRES!!" );}
else if(num == 4)
{System.out.println("CUATRO!!" );}
else if (num == 5)
{System.out.println("CINCO!!" );}
else if (num == 6)
{System.out.println("SEIS!" );}
else if (num == 7)
{System.out.println("SIETE!!" );}
else if(num == 8)
{System.out.println("OCHO!!" );}
else if (num == 9)
{System.out.println("NUEVE!!" );}
38
else
{System.out.println("El numero es mayor a 9" );}
//Fin del If

SENTENCIAS DE SELECCIN: IF

En una secuencia de if anidados, cada else va con


el if ms cercano.

int i,j,k;
if (i==10)
if (j<20) System.out.println(uno);
if(k<30) System.out.println(dos);
else System.out.println(tres);
else System.out.println(cuatro);

39

SENTENCIAS DE SELECCIN: IF
Ejemplo:
int numero=61;
if (Math.abs(numero)<10)
System.out.println(Nmero de 1 dgito);
else if (Math.abs(numero)<100)
System.out.println(Nmero de 2 dgitos);
else System.out.println(Nmero de ms de 2 dgitos);

Escribe un programa (constar de una nica clase main) que cree e


inicialice un numero entero a cualquier valor y lo visualice en
pantalla si es par. Prubalo cambiando el valor de inicializacin
del nmero.
Escribe un programa (constar de una nica clase main) que cree e
inicialice dos nmeros. Debe visualizar el mayor de los dos, si
ambos nmeros son iguales que visualice cualquiera de ellos.

40

SENTENCIAS DE SELECCIN: SWITCH

Sintaxis:

switch (expresin o variable) {


expresin o variable debe ser de
case valor1:
tipo entero, admite char y byte, pero
sentencia/s;
no long, double ni float. Admite tipo
[break];
String.
case valor2:
break no es obligatorio: Si no se
sentencia/s;
pone, sigue ejecutando bloques de
[break];
instrucciones hasta que encuentre un
break.
case valor3:
sentencia/s;
[break];
.................
[default: sentencia/s;] [break]; //Este es el bloque de
}

instrucciones que se ejecuta en el caso de que la variable o expresin no


coincida con ningn valor del case.

41

SENTENCIAS DE SELECCIN: SWITCH


La

expresin evaluada deber ser de tipo int, char,


byte o String.
Los valores con los que se compara la expresin en
cada uno de los casos no puede ser un rango sino
un valor concreto.
Si la expresin evaluada coincide con alguno de los
valores, se ejecuta la sentencia o sentencias que
aparecen a continuacin, hasta el final del switch o
hasta encontrar una sentencia break.
Si la expresin no coincide con ninguno de los
valores, se ejecuta el bloque default.
42

SENTENCIAS DE SELECCIN: SWITCH


Ejemplo:
Al no haber break, en
char c;
cualquier case se ejecutar la
switch (c){
sentencia del case u.
case a:
case e:
case i:
case o:
case u: System.out.println (Es una vocal); break;
default: System.out.println (No es una vocal);
}

Ejercicio: Programa que inicialice una variable asociada a


un da de la semana, del 1 al 7, y visualice el nombre del
da en funcin de ese valor.

43

7.2. SENTENCIAS DE ITERACIN


Bucle

Bucle

Bucle

while:

while (expresin_lgica) {
sentencia/s;
}

do while:

for:

do{

sentencia/s;
}while (expresin_lgica);

for ([inicializacin]; [expresin_lgica];[incremento]) {


sentencia/s;
}

44

BUCLE WHILE
public class Ejemplo1 {
//Comienzo del flujo principal del programa.

public static void main(String [] argumentos) {


int x = 0;
int y = 10;
System.out.println("Primer iterador");
while(x < y) {
System.out.println("x es "+ x++);
} //cierra while
} //cierra main
} //cierra class
Es un bucle o sentencia repetitiva con una condicin al principio. Se ejecuta una sentencia
mientras sea cierta una condicin. La sentencia puede que no se ejecute ni una sola vez.
Por convencin: El carcter de llave de apertura { se coloca al final de la misma lnea de la
sentencia while. El carcter de llave de cierre }empieza una nueva lnea y se alinea 45
con la
palabra while.

Realiza un programa que muestre los nmeros pares que hay entre el 1 y el 20.

BUCLE DO-WHILE
public class Ejemplo2 {
//Comienzo del flujo principal del programa.

public static void main(String [] argumentos) {


int x = 0;
int y = 10;
System.out.println(segundo iterador");
do {
System.out.println("x es " + x++);
} while ( x < y );
} //cierra main
} //cierra class
Es un bucle o sentencia repetitiva con una condicin al final. Se ejecuta una
sentencia mientras sea cierta una condicin. En este caso, a diferencia del while, la
46
sentencia se ejecuta al menos una vez.
Realiza un programa que muestre los nmeros pares que hay entre el 1 y el 20.

BUCLE FOR
public class Ejemplo3 {
//Comienzo del flujo principal del programa.

public static void main(String [] argumentos) {


for(int i = 0; i < 10 ; ++i) {
System.out.println("i es "+ i);
} //cierra for
} //cierra main
} //cierra class
Es un bucle o sentencia repetitiva que ejecuta la sentencia de inicio, verifica la
expresin booleana, si es cierta, ejecuta la sentencia entre llaves y la sentencia de
iteracin para volver a verificar la expresin booleana o si es falsa, sale del bucle.
Es completamente legal en Java declarar una variable dentro de la cabecera de un
47
bucle for. De esta forma la variable (local) slo tiene mbito dentro del bucle.
Realiza un programa que muestre los nmeros pares que hay entre el 1 y el 20.

CONTADOR Y ACUMULADOR
Un contador es una variable que cuenta las veces que se ha
realizado un proceso.
contador se incrementa en un valor constate
Ejemplo: contador=contador+1

Un acumulador es una variable que se encarga de almacenar el


resultado de sumas o multiplicaciones sucesivas, es decir de
operaciones sucesivas, en bucle, en las que se tenga que ir
almacenando el resultado que se vaya generando.
acumulador se incrementa en un valor variable
Ejemplo: acumulador = acumulador + nmero_ledo_pantalla
48

CONTADOR Y ACUMULADOR
public class Contador {
public static void main(String[] args) {
int contador=1;
int acuSuma=0;
while (contador<=10){
contador++;
acuSuma+=contador;
}
System.out.println("El resultado de la suma es: "+ acuSuma);
}

Calcular el promedio de 10 nmeros aleatorios entre 1 y 100


utilizando una variable acumulador y otra contador. El
programa debe mostrar los nmeros que se van generando en
cada iteracin y, finalmente el valor del promedio.
Ayuda: La llamada a Math.random() devuelve un nmero aleatorio entre 0.0 y 1.0, excluido
49
este ltimo valor, es decir, puede devolver 0.346442, 0.2344234, 0.98345,....
Si queremos generar nmeros entre 1 y 100 tenemos que usar: Math.random()*100+1 y
hacer casting.

7.3. SENTENCIAS DE SALTO


Break. Permite salir de la estructura de control y continuar con el cdigo que hay
despus.
for (v=1; v<10; v++) {
If (v%3==0) break;
}

Continue: Interrumpe la ejecucin del bucle, pero vuelve a evaluar la condicin


del mismo pudiendo volver a entrar en l.
for (v=1; v<10; v++) {
If (v%2==0) continue;
System.out.println (v);
}

Return: Termina la ejecucin de un mtodo con el fin de volver a la instruccin


que provoc la llamada a dicho mtodo.

Se desaconseja el uso de instrucciones break y continue, ya que no


50
dan claridad al cdigo.

Prctica para entregar:


PROUT2P2 IF-SWITCH-BUCLES

51

EJERCICIOS
3.1.Identifica los errores de los siguientes fragmentos de
cdigo:
a) if (edad>=65);
System.out.println(edad mayor o igual que 65);
else System.out.println(edad mayor que 65);
b) int x=1, total;
while (x<=10)
total+=x;
x++;
c) int i,j,k;
for (i=0,j=10; j+i;i++)
k=i/j;
d) do{

System.out.println(hola);
}while (x<=10)

52

EJERCICIOS
3.2.Indica cual es la salida del siguiente programa:
public class Misterio{
public static void main( String args[]) {
int y, x=1, total=0;

while (x<=10) {
y=x*x;
System.out.println(y);
total+=y;
x++;
}
System.out.println(El total es: + total);

53

8. ENTRADA/SALIDA BSICA
SALIDA BSICA

System.out.print() o System.out.println(), son las instrucciones que ya


conocemos para salida de mensajes en la pantalla.

La diferencia entre un mtodo y otro, es que print visualiza el siguiente


mensaje en la misma lnea y println el siguiente mensaje lo baja de lnea.

package Ejemplo;
import java.io.*;
public class CMain {
public static void main(String[] args) {
System.out.println(hola);
System.out.println(1);
System.out.println(2);
System.out.println(3);
}

SALIDA BSICA. Especificadores de formato

En ocasiones nos puede interesar tener una salida de datos en pantalla con
formato. Debemos usar System.out.printf.

Por ejemplo cuando queremos mostrar un nmero de tipo float o double con un

nmero determinado de decimales y no con los que por defecto muestra Java.

Ejemplo: Si queremos mostrar el nmero 12.3698 de tipo double


con dos decimales:
System.out.printf("%7.2f ", 12.3698);
El primer % indica que en esa posicin se va a escribir un valor (dicho
valor viene tras la ,).
7 indica el ancho total del numero.
.2 indica el nmero de decimales.
La f indica que el nmero es de tipo float o double.

double n = 1.25036; int x = 10;


System.out.printf("n = %.2f x = %d %n", n, x);
Salida: n = 1,25 x = 10

SALIDA BSICA. Especificadores de formato


Cuando hay varias variables podemos indicar de cual de ellas es el valor a mostrar
escribiendo 1$, 2$, 3$, ... indicando que el valor a mostrar es el de la primera variable
que aparece a continuacin de las comillas, de la segunda, etc. La instruccin
System.out.printf("n = %.2f x = %d %n", n, x);
del ejemplo anterior la podemos escribir as:
System.out.printf("n = %1$.2f x = %2$d %n", n, x);

56

Entrada Bsica

En Java, hay muchas clases que permiten la entrada de datos a travs del teclado.
Vamos a ver dos formas de hacerlo:
Usando las clases InputStreamReader y BufferedReader.
Usando la clase Scanner.

InputStreamReader y BufferedReader
Para ello, hay que usar estar dos instrucciones:

InputStreamReader entrada=new InputStreamReader (System.in);


BufferedReader teclado =newBufferedReader(entrada);

System.in indica la entrada estndar de datos. Dicha entrada de datos es el


teclado.

Para usar estas dos clases hay que importar java.io.*;

El objeto entrada del ejemplo es de tipo InputStreamReader. Esta clase controla


la entrada de datos a travs del teclado. Es decir, entrada recoge la informacin
del teclado.

La clase BufferedReader reserva memoria para guardar los datos que se insertan
a travs del teclado. Es decir, el objeto teclado guarda la informacin en
memoria.

Entrada Bsica
Hay que usar ambos objetos para poder capturar los datos del teclado.
El objeto de tipo BufferedReader tiene un mtodo que es readLine(). Dicho mtodo
se encarga, concretamente, de tomar todo lo que se inserte a travs del teclado hasta
pulsar enter. La llamada a dicho mtodo sera:
teclado.readline()
Este mtodo lo que toma a travs del teclado lo hace siempre en formato String.
String dato=teclado.readline();
Cuando quieres trabajar con un nico carcter:
char a=teclado.readLine().charAt(0);
Cuando queremos trabajar con nmeros en lugar de con cadenas de caracteres
tenemos que pasar el tipo String al tipo de dato con el que queremos trabajar:
Si lo quieres pasar a int: int datoInt=Integer.parseInt(datoString);
Si lo quieres pasar a short: short datoShort=Short.parseShort(datoString);
Si lo quieres pasar a long: long datoLong=Long.parseLong(datoString);
Si lo quieres pasar a float: float datoFloat=Float.parseFloat(datoString);
Si lo quieres pasar a double:
double datoDouble=Double.parseDouble(datoString);
Hay que usar el punto para representar un nmero decimal.

58

ENTRADA BSICA (LECTURA DE UN ENTERO)


import java.io.*;
public class Entrada {
public static void main(String [] args) throws IOException {
int numinsert=0;
String lin;

Ciertos
mtodos
requieren que
se
controlen
posibles
errores que puedan
producirse durante la
ejecucin
del
programa,
por
ejemplo que no haya
mem. RAM suficiente.
Es el caso del mtodo
readline.

InputStreamReader entrada=new InputStreamReader (System.in);


BufferedReader teclado =new BufferedReader(entrada);
System.out.print(Inserte un nmero entero: ");
lin = teclado.readLine();
numinsert=Integer.parseInt(lin);
System.out.println(El numero insertado es +numinsert);
}
}

ENTRADA BSICA (LECTURA FLOAT)


import java.io.*;

public class Entrada {


public static void main(String [] args) throws IOException {
float numinsert=0;
String lin;
InputStreamReader entrada=new InputStreamReader (System.in);
BufferedReader teclado =new BufferedReader(entrada);
System.out.print("Inserte un nmero real:");
lin = teclado.readLine();
numinsert=Float.parseFloat(lin);
System.out.println("El numero insertado es " +numinsert);

}
}

Ejercicio: Escribe un programa que pida dos nmeros double y


muestre su suma.

ENTRADA BSICA
Clase Scanner

Para usar la clase Scanner hay que ejecutar esta instruccin:

Scanner entrada = new Scanner (System.in);


Hay que importar java.io* y java.util.Scanner

Ahora podemos usar los objetos de la clase Scanner que permiten la entrada de
datos.
String nombre;

nombre=entrada.nextline();
float numero;

numero=entrada.nextFloat();

Esta clase tiene un mtodo para cada tipo bsico de Java, con lo cual si usamos
esta clase no hace falta usar la conversin.

Ejercicio: Escribe un programa que pida el nmero que tiene asignado un empleado y
su nombre. Posteriormente, se visualizar dicha informacin.
Si el empleado tiene un nombre compuesto, como por ejemplo Juan Carlos, solo se
coger el primer nombre indicado. Hay que averiguar cual es el mtodo de la clase
Scanner que toma caracteres hasta que se encuentre con el primer carcter en blanco.

PROUT2P3 ENTRADA_SALIDA BSICA


PROUT2P4 SENTENCIAS DE CONTROL
PROUT1P5 SALIDAS PROGRAMAS

Вам также может понравиться