¿Qué es la consola?
Una consola de comandos es una interfaz de usuario de solo texto, donde el usuario escribe comandos y el programa los procesa. Muchas aplicaciones usan este tipo de interfaces, especialmente porque no todos los entornos son necesariamente gráficos (por ejemplo en los servidores).
Una consola de comandos simplemente despliega texto y el usuario escribe texto. nada más que eso.
Bueno ¿Y qué hago?
Para poder interactuar con el usuario, necesitamos considerar las preguntas que queremos hacerle y los datos que queremos que nos provea (las entradas de nuestro programa). Por ejemplo, si queremos hacer una aplicación que suma, resta, multiplica y divide, necesitaremos las siguientes entradas:
- La operación que se requiere
- El primer operando
- El segundo operando
Estas tres cosas son preguntas que le haremos al usuario. Piensen en un formulario de una página web, hay campos de texto donde uno pone la información que se requiere. Así mismo se trabajará en una aplicación de consola.
Sacando información por la pantalla
Gracias al cielo no nos toca pensar en como desplegar el texto. Java viene con un par de librerías que nos ayudarán para lograrlo y solamente necesitamos llamar un método que imprime en la pantalla una cadena de caracteres:
System.out.println("Hola");
La anterior instrucción (obviamente dentro de algún método, por ejemplo un main) debería imprimir la cadena hola seguida de un cambio de línea (o sea que lo siguiente que se escriba aparecerá más abajo). Si se quiere obviar el cambio de línea se puede invocar el método:
Con estos textos se pueden hacer las preguntas necesarias al usuario, pero queda faltando como capturar lo que el usuario escribe en el teclado...
Para poder capturar información del teclado, se requiere crear una variable de tipo Scanner (no profundizaré en este tipo, pero es una variable de un tipo "lector" que puede leer varias cosas, inclusive nuestro teclado). A esta variable le llamaremos un método que puede capturar lo que el usuario escribe hasta que presiona ENTER. El método que llamamos depende del tipo de dato que queremos pedir. Así, hay metodos para pedir numeros , booleanos y cadenas (no hay para pedir un solo caracter, al menos en JAVA)
Siendo así instanciaremos una variable de tipo Scanner y le daremos una referencia al teclado
Y luego a esa variable le pediremos que nos dé el número que el usuario escriba. El programa se quedará esperando que el usuario lo haga
En este programa, la variable número quedará con el valor del entero que escribe el usuario. Así mismo hay métodos para pedir cadenas (nextLine), pedir números Double o Float (nextDouble y nextFloat) y booleanos (nextBoolean):
Con estas instrucciones podemos entonces trabajar nuestra mini calculadora.... es necesario condicionar la operación basado en lo que nuestro usuario nos dice que hagamos. El tema de condicionales se trata en el post Sobre Condicionales - Actuando en consecuencia , pero para este ejemplo basta saber que la instrucción if nos permite seleccionar la operación correcta dependiendo del operador que el usuario nos dió.
Espero que esta entrada les sea util :)...Con esto podremos hacer aplicaciones sencillas que interactuen con el usuario mediante textos.
System.out.print("Hola sin cambio de línea");
Con estos textos se pueden hacer las preguntas necesarias al usuario, pero queda faltando como capturar lo que el usuario escribe en el teclado...
Capturando lo que el usuario escribe
Para poder capturar información del teclado, se requiere crear una variable de tipo Scanner (no profundizaré en este tipo, pero es una variable de un tipo "lector" que puede leer varias cosas, inclusive nuestro teclado). A esta variable le llamaremos un método que puede capturar lo que el usuario escribe hasta que presiona ENTER. El método que llamamos depende del tipo de dato que queremos pedir. Así, hay metodos para pedir numeros , booleanos y cadenas (no hay para pedir un solo caracter, al menos en JAVA)
Siendo así instanciaremos una variable de tipo Scanner y le daremos una referencia al teclado
Scanner teclado = new Scanner(System.in);
Y luego a esa variable le pediremos que nos dé el número que el usuario escriba. El programa se quedará esperando que el usuario lo haga
int numero = teclado.nextInt();
En este programa, la variable número quedará con el valor del entero que escribe el usuario. Así mismo hay métodos para pedir cadenas (nextLine), pedir números Double o Float (nextDouble y nextFloat) y booleanos (nextBoolean):
int numero = teclado.nextInt(); //pide entero float flotante = teclado.nextFloat(); //pide flotante double doble = teclado.nextDouble(); //pide un double (doble presición) boolean b = teclado.nextBoolean(); //pide un booleano, espera que el usuario escriba "true" o "false" String s = teclado.nextLine(); //pide una cadena de caracteres
Un ejemplo
Con estas instrucciones podemos entonces trabajar nuestra mini calculadora.... es necesario condicionar la operación basado en lo que nuestro usuario nos dice que hagamos. El tema de condicionales se trata en el post Sobre Condicionales - Actuando en consecuencia , pero para este ejemplo basta saber que la instrucción if nos permite seleccionar la operación correcta dependiendo del operador que el usuario nos dió.
import java.util.Scanner; public class CalculadoraBasica { /** * @param args * @param * @return * Description */ public static void main(String[] args) { //Crear una variable de tipo Scanner que nos permita pedir al usuario lo que necesitamos Scanner teclado = new Scanner(System.in); //Preguntar al usuario una a una las entradas que requerimos //operador System.out.println("Por favor escriba el operador(+,-,*,/)"); String operador = teclado.nextLine(); //operando 1 System.out.println("Por favor escriba el primer operando"); double operando1 = teclado.nextDouble(); //operando 2 System.out.println("Por favor escriba el segundo operando"); double operando2 = teclado.nextDouble(); //ahora podemos ejecutar la operación seleccionada. utilizaremos un condicional //para seleccionar la operacion y una variable double para almacenar la respuesta double respuesta = 0; if(operador.equals("+")) { respuesta = operando1 + operando2; } else if(operador.equals("-")) { respuesta = operando1 - operando2; } else if(operador.equals("*")) { respuesta = operando1 * operando2; } else if(operador.equals("/")) { respuesta = operando1 / operando2; } //por ultimo podemos mostrar al usuario la respuesta System.out.println(operando1+" "+operador+" "+operando2+" = "+respuesta); } }
Espero que esta entrada les sea util :)...Con esto podremos hacer aplicaciones sencillas que interactuen con el usuario mediante textos.