Está en la página 1de 14

Input – Scanner

y Cajas de diálogo

Algoritmos y Desarrollo de Programas I


Objetivos (cont.)
 Cuando finalice esta lección, el
estudiante:
 Podrá escribir programas que obtengan
datos del usuario.

2
Los métodos de la clase Scanner para
obtener valores del teclado

 Como sabemos, el objeto System.out


representa la pantalla en una aplicación
de consola.
 Existe un objeto llamado System.in que
representa el teclado.
 El objeto System.in reconoce métodos
que permiten obtener datos entrados
usando el teclado pero con la limitación
de que solo puede recoger valores de tipo
byte.

3
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)

 Normalmente necesitamos recoger


valores de otros tipos, así que para
superar la limitación que nos presenta el
objeto System.In trabajamos el problema
con unos métodos que nos provee una
clase auxiliar o utilitaria llamada Scanner.
 Para tener acceso a esta clase
necesitamos que nuestros programas
comiencen con el siguiente enunciado:
import java.util.Scanner;

4
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)

 Para poder usar los métodos que


provee la clase Scanner es
necesario declarar una variable de
este tipo de datos que se asocia con
el teclado (System.in).
 El enunciado para declarar esta
variable es el siguiente:
Scanner keyboard = new Scanner(System.in);

5
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)

 La variable del tipo Scanner no tiene que


llamarse keyboard pero se recomienda,
como siempre, un nombre que describa
su función.
 Una vez que se declara e inicializa la
variable se pueden invocar métodos de la
clase Scanner tales como:
 nextInt: obtiene un número entero
 nextDouble: obtiene un número real
 nextLine: obtiene una cadena de caracteres

6
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)

 Existen métodos para los tipos


short, byte, long y float pero no
son importantes en este momento.
 No existen métodos para obtener
directamente booleanos ni para
obtener un solo carácter.
 nextLine().charAt(0) puede resolver
el segundo problema
 Más adelante veremos cómo resolver el
primer problema

7
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)
import java.util.Scanner;

public class CircleApp2 {

public static void main(String[] args) {


double radius, area, circumference;

Scanner keyboard = new Scanner(System.in);

System.out.print("Enter the radius: ");


radius = keyboard.nextDouble();

area = Math.PI * Math.pow(radius, 2);


circumference = 2 * Math.PI * radius;

System.out.println("The area is " + area);


System.out.println("The circumference is " +
circumference);
}
8
}
Los métodos de la clase Scanner para
obtener valores del teclado (cont.)
import java.util.Scanner;

public class PayrollApp2 {


public static void main(String[] args) {
String name;
int hours;
double payRate, grossPay;
Scanner keyboard = new Scanner(System.in);

System.out.print("What is your name? ");


name = keyboard.nextLine();
System.out.print("How many hours did you work this week? ");
hours = keyboard.nextInt();
System.out.print("What is your hourly pay rate? ");
payRate = keyboard.nextDouble();

grossPay = hours * payRate;

System.out.println("Hello " + name);


System.out.println("Your gross pay is $" + grossPay);
}
} 9
El uso de cajas de diálogo para
obtener valores
 Entre los métodos de la clase JOptionPane se
encuentra uno que permite recoger datos de
forma fácil y atractiva: showInputDialog.
 Este método muestra una caja de diálogo que
contiene un mensaje (el prompt) y aceptar un
valor entrado por el usuario.
 Por Ejemplo:
String name;
name = JOptionPane.showInputDialog("Enter your name.");
 El argumento dentro de los paréntesis es el
mensaje que será mostrado sobre la caja de
texto.

10
El uso de cajas de diálogo para
obtener valores (cont.)

 El método showInputDialog siempre


devuelve el valor entrado por el usuario
como un String.
 Si el valor debe ser colocado en una
variable numérica es necesario convertirlo
usando los métodos:
 Integer.ParseInt: para convertir una cadena
de caracteres a un número entero
 Double.ParseDouble: para convertir una
cadena de caracteres a un número real

11
El uso de cajas de diálogo para
obtener valores (cont.)

 Existen métodos para los tipos short,


byte, long y float pero no son
importantes en este momento.
 Recuerde que todo programa que muestre
cajas de diálogo debe tener el siguiente
enunciado al inicio del programa:
import javax.swing.JOptionPane;
 Además el método main debe terminar
con el siguiente enunciado:
System.exit(0);

12
El uso de cajas de diálogo para
obtener valores (cont.)
import javax.swing.JOptionPane;

public class CircleApp3 {

public static void main(String[] args) {


double radius, area, circumference;
String inputString;

inputString = JOptionPane.showInputDialog(
"Enter the radius: ");
radius = Double.parseDouble(inputString);

area = Math.PI * Math.pow(radius, 2);


circumference = 2 * Math.PI * radius;

JOptionPane.showMessageDialog(null,
"The area is " + area);
JOptionPane.showMessageDialog(null,
"The circumference is " + circumference);

System.exit(0);
} 13
}
El uso de cajas de diálogo para
obtener valores (cont.)

14

También podría gustarte