Usando la Clase Scanner para la Entrada de Datos
Los objetos de salida estándar System.out permiten a las aplicaciones de Java mostrar caracteres en la ventana de comandos. De manera similar, el objeto que veremos en este post, llamado el objeto de entrada estándar System.in permite a las aplicaciones de Java leer la información escrita por el usuario.
Los programas recuerdan números y otros datos en la memoria de la computadora y acceden a esos datos a través de elementos del programa conocidos como variables. En esto post veremos una aplicación donde utilizaremos estos variables para que realicen una operación de suma de dos enteros introducidos por el usuario mediante el teclado.
Los programas recuerdan números y otros datos en la memoria de la computadora y acceden a esos datos a través de elementos del programa conocidos como variables. En esto post veremos una aplicación donde utilizaremos estos variables para que realicen una operación de suma de dos enteros introducidos por el usuario mediante el teclado.
//Programa que muestra la suma de dos enteros.
import java.util.Scanner; // Este programa usa la clase Scanner
public class Suma
{
public static void main ( String args[] )
{
Scanner entrada = new Scanner( System.in );
int valor1; // Primer Numero a sumar
int valor2; // Segundo Numero a sumar
int suma; // Suma de valor1 y valor2
System.out.print( "Escriba el primer numero a sumar: ");
valor1 = entrada.nextInt(); // Lee el primer numero del usuario
System.out.print( "Escriba el segundo numero a sumar: ");
valor2 = entrada.nextInt(); // Lee el segundo numero del usaurio
suma = valor1 + valor2; // Suma el valor1 + valor2
System.out.printf( "La suma es %d\n", suma); // Muestra el resultado
}
}
Programa que calcula la suma y muestra el resultado en consola.Salida del Programa.
Escriba el primer numero a sumar: 50
Escriba el segundo numero a sumar: 75
La suma es 125
import java.util.Scanner; // Este programa usa la clase Scanner
La declaración import indica que este programa utiliza la clase Scanner predefinida de Java del paquete java.util.
Scanner entrada = new Scanner( System.in );
La lÃnea anterior es una instrucción de declaración de variable (también conocido como declaración), la cual especifica el nombre (entrada) y tipo (Scanner) de una variable utilizada en este programa. Una variable como lo mencionamos, es una ubicación en la memoria de la computadora, en donde se puede guardar un valor para utilizarlo posteriormente en un programa. Todas las variables deben declararse con un nombre y un tipo antes de poder usarse. Este nombre permite al programa acceder el valor de la variable en memoria y puede ser cualquier identificador valido. El tipo de una variable especifica el tipo de información que se guarda en esa ubicación de memoria. Al igual que los demás instrucciones, las instrucciones de declaración terminan con un punto y como (;).
Entonces la variable llamada entrada es de tipo Scanner. Un objeto Scanner permite a un programa leer datos (como números) para usarlos. Los datos pueden provenir de muchas fuentes, como archivos de disco o datos de teclado. Antes de usar el objeto Scanner, primero debemos crearlo y especificar el origen de los datos.
El signo ( = ) indica que la variable entrada tipo Scanner debe inicializarse en su declaración con el resultado de la expresión new Scanner ( System.ini ) a la derecha del signo igual. Cuando decimos que la variable entrada tipo Scanner debe inicializarse, significa que hay que prepararla para usarla en el programa. Asà que esta expresión crea un objeto Scanner que lee los datos escritos por el usuario mediante el teclado.
Entonces la variable llamada entrada es de tipo Scanner. Un objeto Scanner permite a un programa leer datos (como números) para usarlos. Los datos pueden provenir de muchas fuentes, como archivos de disco o datos de teclado. Antes de usar el objeto Scanner, primero debemos crearlo y especificar el origen de los datos.
El signo ( = ) indica que la variable entrada tipo Scanner debe inicializarse en su declaración con el resultado de la expresión new Scanner ( System.ini ) a la derecha del signo igual. Cuando decimos que la variable entrada tipo Scanner debe inicializarse, significa que hay que prepararla para usarla en el programa. Asà que esta expresión crea un objeto Scanner que lee los datos escritos por el usuario mediante el teclado.
int valor1; // Primer Numero a sumar
int valor2; // Segundo Numero a sumar
int suma; // Suma de valor1 y valor2
Las lÃneas anteriores declaran que las variables valor1, valor2 y suma contienen datos de tipo int. Estas variables pueden contener valores enteros. Las instrucciones de declaración de variables pueden dividirse en varias lÃneas, separando los nombres de las variables por comas. Por ejemplo, las lÃneas anteriores se pueden declarar como una sola instrucción, de la siguiente manera.
int valor1, int valor2, int suma; // Declaración de variables en una sola instrucción.
El seleccionar nombres de variables significativos ayudan a que un programa se mas fácil de entender con solo leerlo.
System.out.print( "Escriba el primer numero a sumar: ");
Estas lÃneas utilizan System.out.print para mostrar el mensaje "Escriba el primer número a sumar: ". Ese mensaje se conoce como indicador, ya que indica al usuario que debe realizar una acción especÃfica, en este caso a que introduzca el primer número a sumar. Los identificadores que empiezan con letras mayúsculas representan nombre de clases. Por lo tanto, System es una clase que forma parte del paquete java.lang. Esta clase (System) no se importa con una declaración import al principio del programa ya que el paquete java.lang se importa de manera predeterminada en todos los programas de Java. Las clases que se encuentran en el paquete java.lang son las únicas que no requieren una declaración import.
valor1 = entrada.nextInt(); // Lee el primer numero del usuario
La lÃnea anterior utiliza el método nextInt del objeto entrada de la clase Scanner para obtener un entero introducido por el usuario. El resultado de llamar al método nextInt (un valor int) se coloca en la variable valor1 mediante el uso del operador de asignación =. La instrucción se lee como valor1 obtiene el valor de entrada.nextInt(). El operador = se le llama operador binario, ya que tiene dos operandos, valor1 y el resultado de la llamada al método entrada.nextInt(). Esta instrucción se le llama instrucción de asignación, ya que asigna un valor a una variable. Todo lo que esta después (a la derecha= del operador de asignación (=) se evalúa siempre antes de realizar la asignación.
System.out.print( "Escriba el segundo numero a sumar: ");
Pide al usuario que introduzca el segundo numero a sumar.
valor2 = entrada.nextInt(); // Lee el segundo numero del usuario
Lee el segundo numero introducido por el usuario y lo asigna a la variable valor2.
suma = valor1 + valor2; // Suma el valor1 + valor2
Esta lÃnea es una instrucción de asignación que calcula la suma de las variables valor1 y valor2 y asigna el resultado de estos dos variables a la variable suma mediante el uso del operador de asignación =. La instrucción se lee como suma obtiene el valor de valor1 + valor2. La mayorÃa de los cálculos se realizan en instrucciones de asignación. Cuando el programa encuentra la operación de suma utiliza los valores almacenados en las variables valor1 y valor2 para realizar el cálculo. La operación de suma es binaria, sus dos operandos son valor1 y valor2. Las partes de las instrucciones contienen cálculos que se llaman expresiones.
System.out.printf( "La suma es %d\n", suma); // Muestra el resultado
Una vez realizado el cálculo, se utiliza el método Sistem.out.printf para mostrar la suma en la consola. El especificador %d es un receptáculo para un valor int, en este caso, el valor de suma, la letra d representa entero decimal. El método printf imprime en pantalla “La suma es “, seguido del valor de suma y una nueva lÃnea. Los cálculos también pueden realzarse dentro de la instrucción printf, en este caso, también podrÃamos haberlo hecho de la siguiente manera.
System.out.printf( "La suma es %d\n", ( valor1 + valor2 ) );
Los paréntesis alrededor de la expresión valor1 + valor2 no son requeridos;
Otro ejemplo sencillo utilizando la clase Scanner.
import java.util.Scanner;
public class ClaseScanner
{
public static void main ( String args[] )
{
int años;
String nombre;
Scanner entrada = new Scanner( System.in );
System.out.print( "Escribe tu nombre >> " );
nombre = entrada.nextLine();
System.out.print( "Introduce tus años >> " );
años = entrada.nextInt();
System.out.println( "Tu nombre es " + nombre + " y tienes " + años + " años ");
}
}
Escribe tu nombre >> delfirosalesIntroduce tus años >> 10
Tu nombre es delfirosales y tienes 10 años
Referencias:
Documentación de la API de Java
https://docs.oracle.com/javase/7/docs/api/index.html
Java How to Program (early objects) (9thEdition) (Deitel)
1 comentarios
si sirbe
ResponderEliminar