[CURSO] Programación en Java

<< < (2/3) > >>

3n31ch:
Impresión de mensajes

“Hola Mundo” es el clásico ejemplo de aprendizaje cuando inicias a programar en cualquier lenguaje. Tu ya lo hiciste al instalar Netbeans ¿lo recuerdas?

Código
System.out.println(“Hola Mundo”);

System.out.println() y System.out.print()

System.out.println() es el método utilizado para imprimir en java, no es tan simple como en otros lenguajes, pero cumple la misma función. Al utilizar esta sentencia le dices a Java que imprima un mensaje en consola, el mensaje que quieres imprimir tienes que ponerlo dentro de los paréntesis y entre comillas dobles, como, por ejemplo:

Código
public static void main(String[] args) {
       System.out.println("Este es un mensaje...");
}

(Recuerda poner tu código dentro del método main y además finalizar la sentencia con un “;”).

Al ejecutar nuestro código (si no sabes cómo hacerlo ve el tutorial: Instalación de herramientas para programar en Java, o directamente presiona la tecla F6) veras algo como esto:
Código:

run:
Este es un mensaje...
BUILD SUCCESSFUL (total time: 1 second)

(run: y BUILD SUCCESSFUL (total time: 1 second) son mensajes que agrega Netbeans, no te preocupes que cuando un usuario ejecute tu programa desde la consola de comandos no aparecerán estos mensajes).

Si modificamos nuestro código y agregamos otra línea abajo la anterior imprimiendo otro mensaje con el texto “Este es otro mensaje…” tendrás algo como esto:

Código
public static void main(String[] args) {
       System.out.println("Este es un mensaje...");
       System.out.println("Este es otro mensaje...");
}

Te podrás dar cuenta que al compilar y ejecutar tu código se imprimirán dos mensajes uno bajo al otro:

Código:

Este es un mensaje...
Este es otro mensaje...

Esto sucede porque System.out.println() tiene por default un salto de línea al finalizar la impresión, entonces el mensaje realmente es algo así:
Código:

Este es un mensaje...[ENTER]
Este es otro mensaje...[ENTER]

Si lo que quieres es imprimir en la misma línea tendrías que utilizar System.out.print() (sin ln) y de esta forma el siguiente mensaje no aparecerá en otra línea, por ejemplo, remplazare el código anterior por el siguiente:

Código
System.out.print("Este mensaje va primero");
System.out.println("Este mensaje va segundo");
System.out.println("Este mensaje va tercero");

(Recuerda que este código está dentro del método main, el cual de aquí en adelante omitiré escribir)

El resultado será algo como esto:

Código:

Este mensaje va primeroEste mensaje va segundo
Este mensaje va tercero

Que si nos fijamos más bien es algo como esto:

Código:

Este mensaje va primeroEste mensaje va segundo[ENTER]
Este mensaje va tercero[ENTER]

Si te das cuenta el primer y segundo mensaje están pegados, si lo que quieres es separarlos con un espacio entre medio, simplemente añades el espacio al final del primer mensaje o al inicio del segundo:

Código
System.out.print("Este mensaje va primero ");
System.out.println("Este mensaje va segundo");

Resultado:
Código:

Este mensaje va primero Este mensaje va segundo

Caracteres especiales

Ahora intenta tu imprimir lo siguiente:
Código:

Las comillas dobles son así “

Te quedara algo como esto:

Código
System.out.println("Las comillas dobles son asi "");

Y Netbeans te indicara que es un error, porque no puedes escribir comillas dobles dentro de un mensaje que utiliza como delimitador del mismo las comillas dobles.

Para estos casos existen los caracteres especiales. La forma de arreglar tu problema es añadiendo un backslash “\” justo antes de la comilla doble:

Código
System.out.println("Las comillas dobles son asi \"");

Al hacer esto el mensaje se imprimirá de la siguiente forma:

Código:

Las comillas dobles son asi "

Entonces ahora tenemos otro problema, que pasaría si quisiéramos añadir el baskslash en el mensaje, para imprimir lo siguiente: Las comillas dobles son así \”

Muy simple solo tienes que añadir dos backslash justo antes del primero:

Código
System.out.println("Las comillas dobles son asi \\\"");

El resultado es:

Código:

Las comillas dobles son asi \"

Supongo que ya te das cuenta del patrón, el backshash es lo que se llama un carácter de escape, nos permite escribir caracteres que normalmente no podríamos escribir. El carácter que normalmente no podríamos escribir se pondría justo después del backslash, por tanto, si queremos escribir una “ ponemos \” o si queremos escribir un \ ponemos \\.

Existen más caracteres especiales, aquí una lista:

\bRetrocesoUtilizado para borrar el ultimo carácter\tTabuladorUtilizado para tabular\rRetorno de carroUtilizado para volver al inicio de la línea (todo lo que escribas después de esto sobre-escribirá lo anterior)\nNueva líneaUtilizado para hacer un salto de línea (igual al que incluye por defecto println al finalizar el mensaje)\'Comilla simpleUtilizado para imprimir una comilla simple\"Comilla dobleUtilizado para imprimir una comilla doble\\Barra invertidaUtilizado para imprimir una barra invertida
Un uso muy útil para este tipo de caracteres seria por ejemplo para imprimir el siguiente mensaje solo con un System.out.print():

Código:

Primera línea
Segunda línea
Tercera línea

El código seria el siguiente:

Código
System.out.print("Primera línea\nSegunda línea\nTercera línea");

Llegaremos hasta aquí por ahora, aunque retomaremos la impresión de mensajes en un par de tutoriales más ya que un nos queda una cosa por ver, la concatenación.

En los recursos asociados a este tutorial encontraras ejercicios relacionados con este tutorial además de sus soluciones propuestas. Recuerda que existen mil formas de realizar un mismo algoritmo así que no te asustes si tu solución no es exactamente igual a la mía.

(Las soluciones propuestas estarán en un documento .java solo ábrelo con un bloc de notas o con tu Netbeans para verlos, puedes copiar y pegar el código para probar cada solución {las cuales estarán separadas por guiones bajos}).
Esto se hará así hasta que sepas un poco más de métodos y de esta forma facilitar todo en un único proyecto.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Impresión de mensajesTutorial descargable .DOCXEjercicios propuestos .TXTSoluciones a ejercicios propuestos .CLASS
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

3n31ch:
Variables y Constantes

En la informática existen dos conceptos muy importantes, son las variables y las constantes. A continuación, abordaremos ambos términos.

Variables

Las variables son espacios de memoria reservados en la RAM utilizados para guardar valores de distinta índole con los cuales se puede operar o directamente modificar. En palabras más simples, las variables son casillas de memoria en las cuales ingresamos un valor, por ejemplo, un número.

En Java cada variable se compone de tres partes, un tipo, un identificador y un valor (aunque dicho valor puede ser nulo).



1.   El tipo es el que nos permite saber si una variable es numérica, una palabra u otra cosa. (Existen lenguajes que no requieren definir el tipo de una variable ya que los detectan automáticamente, sin embargo, en Java esto no es así).
2.   El identificador o nombre de la variable es necesario para que podamos referirnos a ella posterior a su creación.
3.   El valor es cualquier tipo de… valor que queramos guardar en nuestra variable.

(No mencionare nada respecto a los punteros ya que Java, si bien los posee, no permite el uso explícito de punteros en el código.)

Tipos de Variables

Podríamos dividir las variables en dos partes:
1.   Primitivas: Entidades elementales como lo es un numero o carácter.
2.   Objetos: Entidades complejas como una palabra (un conjunto de caracteres).

VARIABLES PRIMITIVAS
Las variables primitivas a su vez pueden ser catalogadas en cuatro:

Enteras (Almacena números enteros): byte, short, int y longComa flotante (Almacena números decimales): float y doubleCaracteres (Almacena un carácter): charLógicas (Almacena un valor “verdadero” o “falso”): boolean
A continuación, abordaremos cada tipo:

Enteros

Existen cuatro variables enteras que se diferencian en el tamaño de valores que pueden almacenar. ¿Recuerdas que te mencione que las variables son espacios de memoria? Pues, vale. Ahora resulta evidente que no es lo mismo guardar un “1” a guardar un “999999999”, esto sucede porque los espacios de memorias que utiliza una variable se miden en “bytes”.

Si quieres saber más sobre espacios de memorias ingresa al Curso de Fundamentos de Ingeniería en Informática (Aun no disponible).

La siguiente tabla especifica la cantidad de bytes y que utiliza cada variable:

TIPOUSO DE MEMORIARANGO DE VALORESbyte1 byte-128 a 127short2 bytes-32768 a 32767int4 bytes-2147483648 a 2147483647long8 bytes-9223372036854775808 a 9223372036854775807
Por defecto Java maneja todos los números en int, por tanto, si utilizas un numero sin declararlo como variable este será int. (luego hablaremos un poco más de esto).

Otro tema es que para inicializar una variable long es necesario utilizar la letra L al final del número, por ejemplo:
Código
long numeroMuyGrande = 36854775808L;

Decimales

Existen dos tipos de números decimales y se aplica la misma regla que en los números enteros (uno requiere de menos memoria que otro). Sin embargo, esto más que asociado al rango de valores está más asociado a la precisión del decimal (menos o más decimales).

TIPOUSO DE MEMORIARANGO DE VALORESfloat4 byte+-3.4x10-38 a +-3.4x1038double8 bytes+-1.8x10-308 a +-1.8x10308
Java por defecto utiliza double para todos los números con coma flotante.

Al igual que pasa con long para declarar una variable float es necesario hacer uso de una letra, en este caso la F
Código
float numeroDeComaFlotante = 1.5F;

Caracteres

Un carácter utiliza 2 bytes y para definir un valor es necesario utilizar comillas simples '

Código
char caracter = 'B';

También puedes declarar un carácter a partir de su número en el código ASCII, por ejemplo, el carácter arroba "@" es igual a 64. Para estos casos no se ha de utilizar una comilla simple.
Ejemplo:

Código
char caracter1 = '@';
char caracter2 = 64;

Tanto caracter1 como carácter2 tienen el mismo valor y no se diferencian en absolutamente nada.

Verdadero o Falso

Las variables de verdadero o falso son conocidas como booleanas. Es prácticamente un 0 o un 1 (falso o verdadero). El espacio en memoria que utiliza una variable booleana es 1 bit (no un byte) y los valores que admiten son “true” o “false” sin comillas.

Código
boolean verdadero = true;
boolean falso = false;

VARIABLES OBJETO

Las variables objeto son instancias de una clase, en este tutorial solo abordaremos una clase (aunque existen muchas más y además tu puedes crear más).

La clase que abordaremos se llama Stirng y aunque no lo creas ya la haz utilizado. ¿Recuerdas?
Código
System.out.println("Este es un mensaje");
 
System.out.println(); recibe como entrada un conjunto de caracteres, y justamente eso es lo que es un String… un conjunto de caracteres. Para declarar un String es necesario definir su valor entre comillas dobles "

Código
String oracion = "esto es un String";

(Ojo, que la primera letra de “String” es en mayúscula. No es "string" sino que "String", esto es debido a las convenciones de Java)

Nombres de Variables

Todos los identificadores han de comenzar con una letra, el carácter guión bajo ( _ ) o el carácter dollar ( $ ).Puede incluir, pero no comenzar por un número No puede incluir el carácter espacio en blanco Distingue entre letras mayúsculas y minúsculasNo se pueden utilizar las palabras reservadas como identificadores.
(Existen convenciones asociadas a los nombres de variables, las cuales no abordare por ahora, pero te recomiendo de sobremanera seguirlas: convenciones).

Declaración e Inicialización de Variables

Existen dos términos que tienes que dominar al utilizar variables:

Declaración: Es la forma en que le damos a conocer al ordenador que pretendemos crear una variable. Acá definimos el tipo y el nombre de la variable.Inicialización: Es el momento en que le asignamos a una variable previamente declarada un valor.Modificación: Es el momento en que modificas el valor de una variable previamente inicializada.
DECLARACIÓN

Para declarar una variable haces lo siguiente:

Código
int nombre;

O puedes declarar muchas variables del mismo tipo a la vez:

Código
int nombre1, nombre2, nombre3, nombre4;

No puedes declarar más de una variable con un mismo nombre (aun cuando no tengan el mismo tipo). Por Ejemplo, esto daría error:

Código
int nombre;
int nombre;

(Esta regla tiene sus excepciones ya que existe otra forma de clasificar a las variables. Por ahora quédate con que en un mismo bloque de código no puedes declarar dos variables con el mismo nombre)

INICIALIZACIÓN

Para inicializar una variable (o sea, darle valor):

Código
nombre = 5;

(recuerda que para inicializar la variable “nombre” primero tienes que declararla)

También puedes declarar e instanciar una variable en la misma línea:

Código
int nombre = 5;

O también puedes declarar e instanciar muchas variables a la vez (siempre que compartan el mismo tipo):

Código
int nombre1 = 5, nombre2 = 2, nombre3 = 7;

También puedes asignar el valor de una variable con una variable previamente inicializada:
Código
int nombre1 = 5;
int nombre2 = nombre1;

MODIFICACIÓN

Las variables pueden modificar sus valores y se hace de la misma forma que cuando inicializamos las variables:

Código
int nombre = 6;
nombre = 5;

También lo puedes hacer con una variable inicializada anteriormente:

Código
int nombre1;
int nombre2 = 6;
nombre1 = nombre2;

Constantes

Las funcionan igual que las variables, la única diferencia es que una vez inicializadas su valor no puede cambiar. Para indicarle a Java que tu variable es una constante solo tienes que agregar la palabra reservada “final” al inicio:

Código
final int numero = 5;

Al realizar esto no podrás cambiar el valor de “numero” ya que lanzara error.

Esto es especialmente útil para aquellos valores que no han de cambiar en la ejecución del programa, por ejemplo, el valor de PI:

Código
final float pi = 3.14F;

Impresión de Variables y Constantes

Puedes imprimir variables y constantes con System.out.println(); o System.out.print(); simplemente en vez de agregar el texto entre comillas agregas el nombre de la variable o constante que quieres imprimir. (Recuerda que para hacer esto es necesario haber inicializado la variable previamente)

Código
int variable = 88;
System.out.println(variable);

O por ejemplo:

Código
String texto = "El valor de la variable numero es: ";
int numero = 55;
System.out.print(texto);
System.out.println(numero);

(En tutoriales posteriores te enseñare a hacer esto mismo pero con un solo system.out.println() haciendo uso de la concatenación)


RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Proyectos en JavaTutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

3n31ch:
Operadores Aritméticos

Las variables aritméticas como int o double no serían especialmente útiles si no se pudiera operar con ellas. Al utilizar la palabra operar me refiero a poder realizar sumas, restas, divisiones, multiplicaciones, etc.
Para operar variables aritméticamente se dispone de los siguientes operadores:

OperadorDescripción+Suma-Resta*Multiplicación/División%Módulo++Incremento--Decremento%Módulo
Un ejemplo de su uso seria el siguiente:

Código
int numero = 4+2;

El valor de “numero” si lo imprimiéramos seria el siguiente:

Código:

6

En muchas situaciones tenemos que operar con dos variables ya inicializadas:

Código
int numero1 = 5;
int numero2 = 3;
int numero3 = numero1-numero2;

De esta forma el valor de numero3 es el siguiente:

Código:

2

Como puedes ver todo es bastante intuitivo.

Ahora también existen los incrementos (sumar 1) y decrementos (restar 1) los cuales utilizas de la siguiente manera:

Código
int numero = 12;
numero++;
System.out.println(numero);

El resultante sería el siguiente:

Código:

13

Ahora, también lo podrías hacer de la siguiente forma:

Código
int numero = 12;
++numero;
System.out.println(numero);

Y el resultado sería exactamente el mismo:

Código:

13

La diferencia radica en el momento en que se realiza la suma, si los ++ o – están antes entonces la suma o resta se realiza antes y si están después, entonces se realizan después. Seguramente te preguntes ¿Antes o después de qué?

Mira los siguientes dos ejemplos:

Ejemplo 1 (Antes)Ejemplo 2 (Después)Código
int a = 5;
int b = ++a;
System.out.println(a);
System.out.println(b);
Código
int a = 5;
int b = a++;
System.out.println(a);
System.out.println(b);
Resultado:Código:

6
6
Resultado:Código:

6
5

En ambos casos “a” aumento su valor en uno, pero la diferencia radica en “b”.

En el primer ejemplo cuando nosotros le decimos a Java que asigne a “b” el aumento de “a” y en el segundo ejemplo le decimos que asigne a “b” el valor de “a” y luego aumente “a”. Ósea, en el primer ejemplo se hace el aumento y luego se asigna y en el segundo ejemplo se asigna y después de aumenta.

Operadores de Asignación Aritméticas

También existen operadores de asignación aritmética:

OperadorDescripción+=Suma y Asignación-=Resta y Asignación*=Multiplicación y Asignación/=División y Asignación%=Módulo y Asignación
Básicamente los operadores de asignación aritmética existen para ahorrarnos trabajo, un ejemplo de esto es la siguiente comparación.

Ejemplo 1 (sin asignación aritmética)Ejemplo 2 (con asignación aritmética)Código
double a = 5.4;
a = a + 1.6;
System.out.println(a);
Código
double a = 5.4;
a += 1.6;
System.out.println(a);
Resultado:
Código:

7.0
   Resultado:
Código:

7.0

En ambos casos estamos aumentando el valor de la variable a en 1.6 pero en el segundo caso nos ahorramos el escribir nuevamente “a”.

Precedencia

La precedencia es idéntica a la precedencia matemática, por lo que si quieres que una suma se realice antes de una multiplicación puedes utilizar el paréntesis.

Código
int numero = 5*(2+5);

No hablare más de este tema ya que es matemática básica, y he de suponer que la manejas antes de saber programar.

Esto es todo por ahora, te espero en el siguiente tutorial en donde hablaremos un poco de la concatenación.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Operadores MatemáticosTutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

3n31ch:
Concatenación

La concatenación es un tema simple pero útil. No lo explique en el tutorial de impresión de mensajes ya que era necesario explicar otros temas antes.

La concatenación es simplemente unir dos mensajes en uno, y se hace simplemente utilizando el carácter “+”. Un ejemplo de esto es el siguiente:

Código
System.out.println("Este es el primer mensaje " + "Este es el segundo");

El resultado sería el siguiente:

Código:

Este es el primer mensaje Este es el Segundo

Puedes utilizar la concatenación cuantas veces quieras:

Código
System.out.println("a" + "b" + "c" + "d" + "e");

Y evidentemente también lo puedes hacer sin la necesidad de un System.out.println

Código
String cadena = "a"+"b"+"c";

También puedes combinarlo con números y variables:

Código
String mensaje = "El valor de la variable \"numero\" es:";
int numero = 55;
System.out.println(mensaje + " " + numero);
 

Esto daría como resultado lo siguiente:

Código:

El valor de la variable "numero" es: 55

En resumen, puedes concatenar cualquier variable o constante numérica o String que se te ocurra siempre y cuando utilices el símbolo “+” sin las comillas.

Ahora la problemática esta en como diferenciamos una suma entre dos variables numéricas versus una concatenación entre las mismas:

Código
int a = 4;
int b = 6;
System.out.println(a + b);
 
¿Cuál crees que es el resultado?:
Opción A:Opción B:1046
Si tu respuesta fue la Opción A: 10, estas en lo correcto. Siempre que exista un signo más entre dos números se realizara una suma.

Y ahora en este caso:

Código
int a = 4;
int b = 6;
System.out.println("" + a + b);

¿Cuál crees que fue el resultado?

Si tu respuesta fue 10, lamento decirte que te equivocaste. Y es porque omití decirte dos cosas muy importantes:

La concatenación se lee de izquierda a derecha. La concatenación entre un String y un número da como resultado un String, entre dos números un número y entre dos String un Strnig.
Entonces lo que está pasando en el caso anterior es lo siguiente:

1.   Concatenar “” y 4: El resultado es 4 (Un String) // Una palabra vacía es un String siempre y cuando tenga las comillas.
2.   Concatenar un “4” y un 6: El resultado es 46 (Un String) // Recuerda, entre un String y un numero el valor es un String.

Con lo anterior ya deberías poder dominar las concatenaciones perfectamente además de poder convertir un número a un String.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – ConcatenaciónTutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

3n31ch:
Inputs por Consola - Scanner

Un sistema o programa normalmente posee una entrada un proceso y una salida. Hasta ahora solo hemos generado salidas mediante un proceso (ya sea creando variables o simplemente imprimiendo por consola) pero no hemos interactuado en ningún momento con el usuario.

Una forma de interactuar con el usuario es que este entregue parámetros de entrada, los cuales pueden ser ingresados por la consola de comandos mientras está ejecutándose nuestro programa. Existen muchas formas de hacer esto, pero en este tutorial utilizaremos la clase Scanner.

Scanner es una clase (modelo) que posee los métodos (funciones) que nos permiten ingresar datos de entrada a nuestro programa. En este caso utilizaremos un conjunto de métodos que nos permitirán ingresar datos por teclado.

Importación, Declaración e Inicialización de Scanner

Primero: Como te indique en el tutorial “Introducción a Java y la Programación Orientada a Objetos(POO)” Una clase es un modelo/plantilla que nos permite generar objetos. Nosotros no podremos acceder a las funcionalidades de Scanner sin previamente crear un objeto Scanner a partir de su clase. Esto puede que te suene a chino, y no te preocupes, a mí me sonó a latín cuando lo hice por primera vez. En siguientes tutoriales explicare de mejor forma que es una clase y objeto, pero por ahora solo escribe lo siguiente:

Código
Scanner scanner = new Scanner(System.in);

Te explicare brevemente de que trata todo esto, no te preocupes si no lo entiendes ya que en tutoriales futuros lo explicare todo más detalladamente:

Lo que estamos haciendo es crear una variable de tipo Scanner que la llamamos coincidentemente scanner (aunque podría haberle puesto cualquier nombre), esto es exactamente lo mismo que hacemos cuando creamos cualquier tipo de variable:

Código
Scanner scanner; // Esto es lo mismo
String string; // Que esto...

(Recuerda que el nombre de la variable podría ser cualquiera, en este caso la llamamos scanner)

Luego en la misma línea inicialice la variable scanner entregándole como valor un objeto Scanner que recibe como parámetro de entrada “System.in”:

Código
Scanner scanner = new Scanner(System.in);
// Declaro scanner = Inicializo scanner


¿Recuerdas el primer tutorial donde te hablé de la clase y objeto perro y te dije que recibía como parámetro de entrada un nombre, color y sexo? Pues esto es lo mismo: Tenemos clase Scanner y recibe como parámetro “System.in”.

Seguramente te habrás dado cuenta que tu programa tira error: “Cannot find symbol: class Scanner” Esto ocurre porque Java no sabe dónde buscar la clase Scanner para poder utilizarla. Para solucionar esto tienes que importar al clase Scanner escribiendo justo debajo de “package nombre.proyecto” lo siguiente:

Código
import java.util.Scanner;

Dando como resultado el siguiente código:

Código
package tutorial.pkg9;
 
import java.util.Scanner;
 
public class Tutorial9 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
   }
}

Recuerda que todo aquello que este entre /* */ o después de // puedes borrarlo.

Entonces lo que hicimos fue:

1.   Importar java.util.Scanner para hacer uso de la clase Scanner.
2.   Declarar la variable scanner de tipo Scanner.
3.   Inicializar la variable scanner creando un objeto de tipo Scanner.

Si en este puto puedes ejecutar tu programa y no pasa ningún error (ósea, no pasa nada de nada) tu programa está bien. Si no lo puedes hacer intenta buscar tu error y en caso de no encontrarlo puedes preguntarme por mensaje privado o mejor, escribir un tema con tu pregunta y tanto yo como otros compañeros estaremos felices de ayudarte.

Métodos de Scanner

Ya tenemos nuestro objeto de Scanner inicializado y funcionando, ahora toca utilizarlo para asignar un valor a una variable. Para esto disponemos de muchos métodos (funcionalidades) distintos, los cuales puedes buscar con más detalle en la API de Java. Pero en este tutorial abordaremos 3:

Código
scanner.nextInt();      // Para numeros enteros int
scanner.nextFloat();    // Para numeros decimales float
scanner.nextLine();     // Para palabras (String)

(todos los métodos/funciones han de finalizar con paréntesis)

PRIMER EJEMPLO

Como primera prueba utilizaremos scanner para pedirle dos números enteros al usuario los cuales posteriormente sumaremos:

Código
Scanner scanner = new Scanner(System.in);
int a;
int b;
a = scanner.nextInt();
b = scanner.nextInt();
System.out.println(a + b);

Lo que acabamos de hacer fue declarar dos variables numéricas llamadas “a” y “b” luego las inicializamos haciendo uso del método nextInt() y posterior a esto imprimimos la suma de a y b.

(Para utilizar el método de un objeto tienes que poner el nombre de la variable, luego un “.” (sin las comillas) y posteriormente el método) (recuerda que los métodos finalizan con un paréntesis.)

Si ejecutamos el programa veras que tan solo al empezar se quedara parado. Esto es porque el programa estará en espera a que ingreses un valor numérico y posterior a esto presiones enter. Esto sucederá dos veces debido a que utilizamos scanner.nextInt() dos veces.

Si lo hiciste correctamente al ingresar dos números veras el resultado de la suma de estos y posteriormente el programa finalizara. (Recuerda ingresar solo números o el programa podrá lanzar error)

Ahora modificaremos nuestro programa para que sea más intuitivo agregando un mensaje justo antes de cada número solicitando que ingresen un valor:

Código
package tutorial.pkg9;
 
import java.util.Scanner;
 
public class Tutorial9 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       int a;
       int b;
       System.out.print("Ingresa el primer numero: ");
       a = scanner.nextInt();
       System.out.print("Ingresa el segundo numero: ");
       b = scanner.nextInt();
       System.out.println(a + b);
   }
}

(Hice uso de system.out.print para que el número se ingresara en la misma línea)

SEGUNDO EJEMPLO

Para el segundo ejemplo borraremos todo lo que está debajo de la inicialización de Scanner y haremos lo siguiente:

Código
Scanner scanner = new Scanner(System.in);
System.out.print("Ingresa tu nombre: ");
String nombre = scanner.nextLine();
System.out.print("Ingresa tu edad: ");
int edad = scanner.nextInt();
System.out.print("Ingresa tu estatura: ");
float estatura = scanner.nextFloat();
System.out.println("Tu nombre es: " + nombre);
System.out.println("Tu edad es: " + edad);
System.out.println("Tu estatura es: " + estatura);

Ahora analicemos lo que acabamos de hacer en orden:

1.   Declaramos e inicializamos scanner
2.   Solicitamos el nombre del usuario
3.   Declaramos la variable nombre de tipo String y utilizamos el método nextLine para que el usuario ingresara un String (su nombre).
4.   Solicitamos la edad del usuario
5.   Declaramos la variable edad de tipo int y utilizamos el método nextInt para que el usuario ingresara un numero entero (su edad)
6.   Solicitamos la estatura del usuario
7.   Inicializamos la variable estatura de tipo float y le asigamos con el método nextFloat un valor decimal (su estatura). // Este ha de introducirse con una “,” como separador decimal
8.   Finalizamos imprimiendo todos los valores ingresados por el usuario.

En este ejemplo hicimos uso de tres métodos de Scanner y los utilizamos para solicitar al usuario ingresar valores desde el teclado.

NOTAS IMPORTANTES

A modo de recordatorio te pongo la siguiente lista:
1.   Para utilizar Scanner tienes que importar Scanner.
2.   Para utilizar Scanner tienes que crear un objeto a partir de la clase Scanner.
3.   Scanner dispone de distintos métodos que puedes utilizar para ingresar datos por teclado.

OTRAS OBSERVACIONES

Algunas observaciones sobre Scanner:
1.   Puedes ingresar valores no String separados por un espacio sin necesidad de apretar enter.
2.   Puedes inicializar una variable directamente haciendo uso de Scanner

ERROR DE SCANNER

Scanner posee un “bug” que sucede al realizar lo siguiente:

Código
System.out.print("Numero: ");
scanner.nextInt();
System.out.print("Otro String: ");
scanner.nextLine();
scanner.nextLine();

Si ejecutas el código anterior te darás cuenta que este finaliza apenas ingreses el primer número. Esto es debido a que nextLine() toma por valor el “Enter” que ingresas apenas terminas de ingresar el número. Una forma de solucionarlo es agregando un nextLine antes del nextLine real:

Código
System.out.print("Numero: ");
scanner.nextInt();
System.out.print("Otro String: ");
scanner.nextLine();
scanner.nextLine();

Eso es todo por ahora. En un futuro te explicare otra forma de ingresar datos por teclados sin necesidad de Scanner pero por ahora esta es la mejor opción (y en particular me gusta mucho Scanner por su simpleza). Nos vemos en el siguiente tutorial.

RECURSOS ASOCIADOS A ESTE TUTORIAL:

Video Tutorial – ConcatenaciónTutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:

No existen recursos complementarios para este artículo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior