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.
//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: 50Escriba el segundo numero a sumar: 75La 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.
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 >> 10Tu nombre es delfirosales y tienes 10 años