# Estruturas de Seleção

<details>

<summary>Criação de Projeto</summary>

Abrir eclipseIDE:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FFqpIRB9XSD9nfptnEeRl%2Fimage.png?alt=media&#x26;token=64b8935a-91ce-4c51-a7bc-2882b7808255" alt=""><figcaption></figcaption></figure>

Criar novo projeto:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2F06lVeIO4jO9VKSwT9uAo%2Fimage.png?alt=media&#x26;token=338a28a8-7ed5-4387-84cb-bac7c624d759" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2Fc3hix1rzxiYohliqVtk8%2Fimage.png?alt=media&#x26;token=0d4106eb-d8cd-481e-bd16-e8dc0e70e440" alt=""><figcaption></figcaption></figure>

Informar nome e selecionar JRE instalada:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FqolEvU40RvfO4dXd2Ymy%2Fimage.png?alt=media&#x26;token=699f85d6-fe82-449a-8ebb-a5e5d2188159" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2F9OJ2sbc06isPZ5koWFwv%2Fimage.png?alt=media&#x26;token=09b5ca71-c156-445b-ad87-d708a4d0e15f" alt=""><figcaption></figcaption></figure>

Finalizar:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FSqjWaiKBtEVlD9Cf2cxg%2Fimage.png?alt=media&#x26;token=a668f53a-2dd2-4bbe-91bc-860a902dd419" alt=""><figcaption></figcaption></figure>

Abrir perspectiva:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2F49U4MPPnm00sn6gytsyW%2Fimage.png?alt=media&#x26;token=5ec4d518-e937-4513-8253-2367d0f7b42c" alt=""><figcaption></figcaption></figure>

Criar pacote:

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FnhmvuKezpjpxXc70mPYL%2Fimage.png?alt=media&#x26;token=358267b5-7619-49f5-9e12-b2010ef4b2ae" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FLbmStF6EHU0sqJ4usIPc%2Fimage.png?alt=media&#x26;token=24c10f35-c7b1-477f-b27e-6ca82f67663a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FuSUjVgJZGqZOVwPsVuDb%2Fimage.png?alt=media&#x26;token=eea225a6-0c1d-4f11-8874-77093127c0e8" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Criação de Classe</summary>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2F5v1WFyp2dgXf4aOp9xR7%2Fimage.png?alt=media&#x26;token=2f547f1b-d1c2-4f95-9a95-1bdcf2878ade" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2F4xA5E765hlyQgTMr5K5C%2Fimage.png?alt=media&#x26;token=9048487d-6f6e-4a7c-85c7-6d6b9d4ddcf9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2FsMEXscnAsN1spSFghfVk%2Fimage.png?alt=media&#x26;token=3b8b0bf5-d3f7-4f9b-bbfd-de1101f6579a" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Diferença entre JRE e JVM</summary>

## **Diferença entre JRE e JVM**

Tanto **JRE (Java Runtime Environment)** quanto **JVM (Java Virtual Machine)** são componentes essenciais do ecossistema Java, mas têm funções distintas. Vamos entender cada um e suas diferenças:

***

### **1. JVM (Java Virtual Machine)**

#### **O que é?**

* A **JVM** é uma máquina virtual que **executa bytecode Java** (arquivos `.class`).
* Ela é responsável por:
  * Carregar o código.
  * Verificar o código (bytecode verification).
  * Interpretar e executar o código (ou compilá-lo Just-In-Time com o **JIT Compiler**).
  * Gerenciar memória (**Garbage Collection**).

#### **Principais características:**

* **Plataforma-dependente**: Existem JVMs para Windows, Linux, macOS, etc.
* **Fornece portabilidade**: O mesmo bytecode pode rodar em qualquer JVM (princípio **"Write Once, Run Anywhere"**).
* **Não inclui bibliotecas ou ferramentas de desenvolvimento**: Só executa programas Java.

***

### **2. JRE (Java Runtime Environment)**

#### **O que é?**

* O **JRE** é um pacote que **permite executar programas Java**.
* Ele inclui:
  * **JVM** (para executar o bytecode).
  * **Bibliotecas padrão** (como `java.lang`, `java.util`, `java.io`, etc.).
  * Outros componentes necessários para **execução** (mas não para desenvolvimento).

#### **Principais características:**

* **Não inclui compilador (`javac`) ou ferramentas de desenvolvimento** (como debugger).
* **Usado apenas para rodar aplicações Java**, não para desenvolvê-las.
* **Faz parte do JDK** (Java Development Kit), mas pode ser instalado separadamente.

***

### **3. Comparação JRE vs JVM**

| **Componente** | **O que faz?**                                          | **Incluído no JDK?** | **Necessário para desenvolvimento?** |
| -------------- | ------------------------------------------------------- | -------------------- | ------------------------------------ |
| **JVM**        | Executa bytecode Java                                   | Sim                  | Não (só para execução)               |
| **JRE**        | Ambiente de execução (JVM + bibliotecas)                | Sim                  | Não (só para rodar programas)        |
| **JDK**        | Kit de desenvolvimento (JRE + compilador + ferramentas) | Sim                  | Sim                                  |

***

### **4. Quando usar cada um?**

* **Se você só quer EXECUTAR programas Java** → Instale o **JRE** (ou apenas use o JRE incluso no JDK).
* **Se você quer DESENVOLVER programas Java** → Instale o **JDK** (que já inclui JRE e JVM).
* **A JVM sozinha não é suficiente**, pois precisa das bibliotecas do JRE para funcionar.

***

### **5. Fluxo de Execução Java**

1. Você escreve código em `.java`.
2. O **JDK** (com `javac`) compila para `.class` (bytecode).
3. O **JRE** (com JVM) executa o `.class`.

```
.java (Código Fonte)  
   → (Compilado pelo JDK)  
.class (Bytecode)  
   → (Executado pelo JRE + JVM)  
Programa Rodando
```

***

### **6. Versões Modernas (Java 11+)**

* A partir do **Java 11**, a Oracle não fornece mais JRE separado.
* Agora, o **JDK já inclui tudo** (JVM + JRE + ferramentas).
* Se você só quer **executar** aplicações, pode usar:
  * **JRE embutido** (em distribuições como OpenJDK).
  * **Ferramentas como `jlink`** para criar um JRE personalizado.

***

#### **Resumo Final**

| **Termo** | **Função**                                               |
| --------- | -------------------------------------------------------- |
| **JVM**   | Máquina virtual que executa bytecode Java.               |
| **JRE**   | Ambiente de execução (JVM + bibliotecas).                |
| **JDK**   | Kit de desenvolvimento (JRE + compilador + ferramentas). |

**Se você desenvolve Java → Use o JDK.**\
**Se só quer rodar aplicações → Use o JRE (ou JDK, que já inclui JRE).**

Espero ter esclarecido! 🚀

</details>

{% file src="<https://2751774268-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxndCEXu1WY8Bo9gAhe4i%2Fuploads%2Fe9dR7VA4tjiBY93HtFMz%2FEstrutura%20de%20Sele%C3%A7%C3%A3o.pdf?alt=media&token=c3a63e3e-12c8-42bf-a052-2e3086203f2d>" %}

Subpáginas:

{% content-ref url="estruturas-de-selecao/ambiente-de-desenvolvimento" %}
[ambiente-de-desenvolvimento](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/ambiente-de-desenvolvimento)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/fluxos-de-execucao" %}
[fluxos-de-execucao](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/fluxos-de-execucao)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/estruturas-de-selecao" %}
[estruturas-de-selecao](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/estruturas-de-selecao)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/selecao-simples" %}
[selecao-simples](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/selecao-simples)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/selecao-encadeada" %}
[selecao-encadeada](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/selecao-encadeada)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/selecao-de-multipla-escolha" %}
[selecao-de-multipla-escolha](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/selecao-de-multipla-escolha)
{% endcontent-ref %}

{% content-ref url="estruturas-de-selecao/switch-expressions" %}
[switch-expressions](https://barbieri.gitbook.io/java/algoritmos-e-programacao-java/estruturas-de-selecao/switch-expressions)
{% endcontent-ref %}
