Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução

/**
 * Ana é professora de matemática e está sempre curiosa sobre as respostas de seus alunos.
 * Hoje, ela propôs um exercício no qual os alunos devem contar quantos números positivos
 * e negativos existem em uma sequência de números fornecida por ela.
 *
 * Ela quer que os alunos criem um programa que permita **inserir vários números, um por vez,
 * e que pare quando o número "fim" for digitado. **
 */

package com.github.lucasdevrj.exercicios;

import java.util.Scanner;

public class ContandoNumerosPositivosENegativos {
    public static void main(String[] args) {
        String valorDigitado = "0";
        int quantidadeDeNumerosPositivos = 0;
        int quantidadeDeNumerosNegativos = 0;

        Scanner entrada = new Scanner(System.in);

        do {
            System.out.print("Digite um número (ou 'fim' para encerrar): ");
            valorDigitado = entrada.nextLine();
            valorDigitado = valorDigitado.toLowerCase();
            boolean ehNumero = valorDigitado.matches("-?\\d+");
            if (ehNumero) {
                int numeroDigitado = Integer.parseInt(valorDigitado);
                if (numeroDigitado > 0) {
                    quantidadeDeNumerosPositivos++;
                } else if (numeroDigitado < 0) {
                    quantidadeDeNumerosNegativos++;
                }
            }
        } while (!valorDigitado.equals("fim"));

        System.out.println("Números positivos: " + quantidadeDeNumerosPositivos);
        System.out.println("Números negativos: " + quantidadeDeNumerosNegativos);

        entrada.close();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Tudo bem?

1 resposta
solução!

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o laço do-while para controlar a entrada de dados com Java, utilizou muito bem o regex para validar se o valor digitado era um número e ainda compreendeu a importância da condicional if para classificar os números em positivos e negativos.

Uma dica interessante para o futuro é aplicar o método equalsIgnoreCase() ao comparar strings, tornando a verificação mais simples e legível. Assim:

while (!valorDigitado.equalsIgnoreCase("fim")) {
    // lógica do programa
}

Isso faz a comparação ignorar diferenças entre maiúsculas e minúsculas, evitando a necessidade de converter a string com toLowerCase().

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!