Introdução
Neste laboratório, você aprenderá como verificar se um array contém apenas números positivos em Java. Exploraremos diferentes abordagens para alcançar isso, começando com um método fundamental que utiliza um loop para iterar pelo array e verificar cada elemento individualmente.
Após o método básico do loop, aprofundaremos o uso da Java Stream API, uma forma mais moderna e frequentemente mais concisa de processar coleções. Finalmente, discutiremos como lidar com números zero e negativos no contexto de determinar se um array contém apenas valores positivos. Este laboratório fornecerá habilidades práticas em manipulação de arrays e lógica condicional em Java.
Iterar pelo Array para Verificação de Positivos
Nesta etapa, aprenderemos como iterar por um array de números em Java e verificar se cada número é positivo. Esta é uma operação fundamental na programação, permitindo-nos processar coleções de dados.
Primeiro, vamos criar um novo arquivo Java chamado PositiveCheck.java no seu diretório ~/project. Você pode fazer isso clicando com o botão direito no File Explorer (Explorador de Arquivos) à esquerda e selecionando "New File" (Novo Arquivo), em seguida, digitando PositiveCheck.java.
Agora, abra o arquivo PositiveCheck.java no editor e adicione o seguinte código:
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Loop through the array
for (int i = 0; i < numbers.length; i++) {
// Get the current number
int currentNumber = numbers[i];
// Check if the number is positive
if (currentNumber > 0) {
System.out.println(currentNumber + " is a positive number.");
}
}
}
}
Vamos detalhar este código:
public class PositiveCheck: Isso declara nossa classe, correspondendo ao nome do arquivo.public static void main(String[] args): Este é o método principal onde a execução do nosso programa começa.int[] numbers = {10, -5, 20, 0, 15, -8};: Esta linha declara um array de inteiros chamadonumberse o inicializa com alguns valores. Um array é uma coleção de elementos do mesmo tipo de dados.for (int i = 0; i < numbers.length; i++): Este é um loopfor. É uma estrutura de controle que nos permite repetir um bloco de código várias vezes.int i = 0: Isso inicializa uma variável de contadoricom 0.i < numbers.length: Esta é a condição que é verificada antes de cada iteração. O loop continua enquantoifor menor que o comprimento do arraynumbers.numbers.lengthnos dá o número de elementos no array.i++: Isso incrementa o contadoriem 1 após cada iteração.
int currentNumber = numbers[i];: Dentro do loop, esta linha acessa o elemento no índice atualido arraynumberse o armazena em uma variável chamadacurrentNumber. Os índices do array começam em 0.if (currentNumber > 0): Esta é uma instruçãoif. Ela verifica se ocurrentNumberé maior que 0.System.out.println(currentNumber + " is a positive number.");: Esta linha é executada somente se a condiçãoiffor verdadeira (ou seja, o número é positivo). Ela imprime o número positivo seguido pelo texto " is a positive number.".
Salve o arquivo PositiveCheck.java (Ctrl+S ou Cmd+S).
Agora, vamos compilar e executar este programa no Terminal. Certifique-se de estar no diretório ~/project.
Compile o código:
javac PositiveCheck.java
Se não houver erros, um arquivo PositiveCheck.class será criado.
Agora, execute o código compilado:
java PositiveCheck
Você deve ver a saída mostrando apenas os números positivos do array.
10 is a positive number.
20 is a positive number.
15 is a positive number.
Isso demonstra como usar um loop for para iterar por um array e aplicar uma condição a cada elemento. Na próxima etapa, exploraremos uma maneira mais moderna de alcançar um resultado semelhante usando a Java Stream API.
Usar a Stream API para Números Positivos
Nesta etapa, exploraremos uma maneira mais moderna e, muitas vezes, mais concisa de processar coleções em Java: a Stream API. Introduzida no Java 8, as Streams fornecem uma maneira poderosa de realizar operações como filtragem, mapeamento e redução em coleções de dados.
Modificaremos nosso exemplo anterior para usar Streams para encontrar os números positivos no array.
Abra o arquivo PositiveCheck.java no editor novamente. Substitua o código existente pelo seguinte:
import java.util.Arrays;
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Use Stream API to filter and print positive numbers
Arrays.stream(numbers) // 1. Create a stream from the array
.filter(number -> number > 0) // 2. Filter for positive numbers
.forEach(number -> System.out.println(number + " is a positive number (Stream).")); // 3. Process each positive number
}
}
Vamos analisar as novas partes deste código:
import java.util.Arrays;: Precisamos importar a classeArrayspara usar seu métodostream().Arrays.stream(numbers): Esta linha converte nosso arrayintem umIntStream. Uma stream não é uma estrutura de dados em si, mas sim uma sequência de elementos que podem ser processados..filter(number -> number > 0): Esta é uma operação intermediária na stream. O métodofilter()recebe umPredicate(uma função que retorna verdadeiro ou falso) e mantém apenas os elementos para os quais o predicado é verdadeiro. Aqui,number -> number > 0é uma expressão lambda, que é uma maneira concisa de escrever uma função. Ele verifica se cadanumberna stream é maior que 0..forEach(number -> System.out.println(number + " is a positive number (Stream)."));: Esta é uma operação terminal. Operações terminais consomem a stream e produzem um resultado. O métodoforEach()executa uma ação para cada elemento na stream. Aqui, ele imprime cada número positivo junto com uma mensagem.
Salve o arquivo PositiveCheck.java.
Agora, compile e execute o programa modificado no Terminal:
javac PositiveCheck.java
java PositiveCheck
Você deve ver a mesma saída de antes, mas com a mensagem atualizada:
10 is a positive number (Stream).
20 is a positive number (Stream).
15 is a positive number (Stream).
Isso demonstra como a Stream API pode ser usada para alcançar o mesmo resultado que o loop for tradicional, muitas vezes com um código mais legível e expressivo, especialmente para operações mais complexas.
Lidar com Números Zero e Negativos
Nas etapas anteriores, focamos na identificação de números positivos. Agora, vamos expandir nosso programa para também identificar números zero e negativos. Isso nos dará uma imagem mais completa dos números em nosso array.
Modificaremos o arquivo PositiveCheck.java novamente para incluir verificações de números zero e negativos usando a abordagem tradicional do loop for primeiro, pois é frequentemente mais fácil entender a lógica condicional com as instruções if-else if-else.
Abra o arquivo PositiveCheck.java no editor. Substitua o código existente pelo seguinte:
public class PositiveCheck {
public static void main(String[] args) {
// Define an array of integers
int[] numbers = {10, -5, 20, 0, 15, -8};
// Loop through the array
for (int i = 0; i < numbers.length; i++) {
// Get the current number
int currentNumber = numbers[i];
// Check if the number is positive, negative, or zero
if (currentNumber > 0) {
System.out.println(currentNumber + " is a positive number.");
} else if (currentNumber < 0) {
System.out.println(currentNumber + " is a negative number.");
} else {
System.out.println(currentNumber + " is zero.");
}
}
}
}
Aqui está o que é novo:
else if (currentNumber < 0): Esta é uma instruçãoelse if. Ela verifica se ocurrentNumberé menor que 0, mas somente se a condiçãoifanterior (currentNumber > 0) for falsa.else: Esta é uma instruçãoelse. O código dentro do blocoelseé executado se nenhuma das condiçõesifouelse ifprecedentes for verdadeira. Neste caso, se o número não for maior que 0 e não for menor que 0, ele deve ser 0.
Salve o arquivo PositiveCheck.java.
Agora, compile e execute o programa modificado no Terminal:
javac PositiveCheck.java
java PositiveCheck
Você deve agora ver a saída que categoriza cada número no array:
10 is a positive number.
-5 is a negative number.
20 is a positive number.
0 is zero.
15 is a positive number.
-8 is a negative number.
Isso demonstra como usar as instruções if-else if-else para lidar com múltiplas condições dentro de um loop. Este é um padrão fundamental para a tomada de decisões na programação.
Você também pode obter resultados semelhantes usando a Stream API com técnicas mais avançadas como partitioningBy ou múltiplas operações filter, mas o loop for com if-else if-else é uma abordagem clara e direta para esta tarefa específica, especialmente para iniciantes.
Resumo
Neste laboratório, aprendemos como verificar se um array contém apenas números positivos em Java. Exploramos dois métodos principais: iterar pelo array usando um loop for e utilizar a Java Stream API.
Começamos criando uma classe Java e usando um loop for para examinar cada elemento em um array de inteiros. Implementamos uma verificação condicional (if (currentNumber > 0)) para identificar e imprimir números positivos. Essa abordagem fundamental demonstrou como acessar e processar elementos individuais dentro de um array. Embora o conteúdo fornecido tenha detalhado apenas o método do loop, a estrutura do laboratório indica que as etapas subsequentes cobririam a Stream API e o tratamento de números zero/negativos, proporcionando uma compreensão abrangente de diferentes técnicas para esta tarefa de programação comum.



