> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/ud1-introduccion-a-programacion/execucion-secuencial/entrada-de-datos-por-teclado.md).

# Entrada de datos por teclado

A entrada de datos por teclado en Java pode realizarse usando a clase `Scanner`<i class="fa-copy">:copy:</i>, que forma parte do paquete `java.util`<i class="fa-copy">:copy:</i>. A clase `Scanner`<i class="fa-copy">:copy:</i> permite ler diferentes tipos de datos desde a entrada estándar (normalmente, o teclado). Aquí tes un paso a paso sobre como utilizar `Scanner`<i class="fa-copy">:copy:</i> para recibir entrada de usuario:

Primeiro, necesitas importar a clase `Scanner`<i class="fa-copy">:copy:</i> no teu programa.

```java
import java.util.Scanner;
```

Despois de importar a clase, debes crear unha instancia de `Scanner`<i class="fa-copy">:copy:</i>.

```java
Scanner scanner = new Scanner(System.in);
```

Agora podes usar métodos da clase `Scanner`<i class="fa-copy">:copy:</i> para ler diferentes tipos de datos. Aquí están algúns dos métodos máis comúns:

* **`nextInt()`**<i class="fa-copy">:copy:</i>: Lee un número enteiro.
* **`nextDouble()`**<i class="fa-copy">:copy:</i>: Lee un número en punto flotante. Cando se introduce este número, o separador de decimais é a coma (`,`).
* **`nextLine()`**<i class="fa-copy">:copy:</i>: Lee unha cadea de texto (incluíndo espazos).
* **`next()`**<i class="fa-copy">:copy:</i>: Lee a próxima palabra (sen espazos).

Aquí tes un exemplo completo que ilustra como recibir diferentes tipos de entrada do usuario:

```java
import java.util.Scanner;

public class ExemploEntrada {
    public static void main(String[] args) {
        // Crear un obxecto Scanner
        Scanner scanner = new Scanner(System.in);

        // Ler un número enteiro
        System.out.print("Introduce a túa idade: ");
        int idade = scanner.nextInt();

        // Ler un número en punto flotante
        System.out.print("Introduce a túa altura en metros: ");
        double altura = scanner.nextDouble();

        // Limpar o buffer de entrada (se é necesario)
        scanner.nextLine(); // Este paso é importante se vas ler cadeas despois de ler números

        // Ler unha cadea de texto
        System.out.print("Introduce o teu nome: ");
        String nome = scanner.nextLine();

        // Mostrar os datos recibidos
        System.out.println("Nome: " + nome);
        System.out.println("Idade: " + idade);
        System.out.println("Altura: " + altura);

        // Pechar o obxecto Scanner
        scanner.close();
    }
}
```

**Notas Importantes:**

* **Limpeza do Buffer**: Despois de ler números, se desexas ler unha cadea, é recomendable usar `scanner.nextLine()`<i class="fa-copy">:copy:</i> para limpar o *buffer*. Isto evita que se salte a entrada da cadea.
* **Pechar o Scanner**: É unha boa práctica pechar o obxecto `Scanner`<i class="fa-copy">:copy:</i> despois de usalo para liberar recursos. Usa `scanner.close()`<i class="fa-copy">:copy:</i> para facelo.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://educacion.gitbook.io/programacion/ud1-introduccion-a-programacion/execucion-secuencial/entrada-de-datos-por-teclado.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
