1
resposta

Minha Resolução

Teria outra forma de fazer linhas separadas de texto, para não ter que utilizar varias vezes o System.out.println? Sempre que é colocado a condicional "else" a primeira interação seguinte seria considerado "True" (caso não especifique no código), certo?

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        int numeroGerado = new Random().nextInt(100);
        int chances = 0;

        System.out.println("Bem vindo ao jogo de adivinhação...");
        System.out.println("Para começar, será gerado um número aleatório de 0 à 100... " +
                "Para vencer o jogo você deve acertar este número em até cinco tentativas");
        System.out.println("Para sua sorte, teremos em cada tentativa errada a dica se é maior ou menor que o número escolhido.");


        while (chances < 5) {
            System.out.println("Digite um número entre 0 e  100: ");
            int tentativa = leitor.nextInt();
            chances++;

            if (tentativa == numeroGerado) {
                System.out.println("Parabéns, você conseguiu desvendar o numero secreto em: " + chances + "Chances!!");
                break;
            } else if (tentativa < numeroGerado) {
                System.out.println("O número é maior que " + tentativa);
            } else {
                System.out.println("O número é menor que " + tentativa);
            }
            }
            if (chances == 5) {
                System.out.println("Acabaram suas tentativas, não foi desta vez! O numero era: " + numeroGerado);


            }

        }
    }



1 resposta

Bom dia Lucas, tudo bem?

Teria outra forma de fazer linhas separadas de texto, para não ter que utilizar varias vezes o System.out.println?

R: Sim, a partir do Java 15 é possível fazer desta forma:

        String mensagem = """ 
                    Bem vindo ao jogo de adivinhação...
                    Para começar, será gerado um número aleatório de 0 à 100... 
                    Para vencer o jogo você deve acertar este número em até cinco tentativas
                    Para sua sorte, teremos em cada tentativa errada a dica se é maior ou menor que o número escolhido.""";
        System.out.println(mensagem);

Sempre que é colocado a condicional "else" a primeira interação seguinte seria considerado "True" (caso não especifique no código), certo?

R: Não, só será considerado "true" quando a condição especificada for verdadeira, caso não encontre nenhuma condição verdadeira entrará no condicional "else";

Sugestões de melhorias:

    • Para o condicional if, não é necessário utilizar o break.
    • Quando eu digito o "chute", está pulando uma linha, seria interessante eu digitar o número na mesma linha que me é solicitado a digitação.
    • Seria interessante a cada vez que eu inserir o "chute", ser informado quantas tentativas ainda tenho restante ou qual é a quantidade de "chutes" que já fiz.
    • Em meu teste recebi o seguinte retorno contraditório:

"Parabéns, você conseguiu desvendar o numero secreto em: 5Chances!! Acabaram suas tentativas, não foi desta vez! O numero era: 97"

Espero ter ajudado!