Jump to content

[Resolvido] Anomalia no output do programa - sem motivo nenhum aparente...


pLayerZero
 Share

Recommended Posts

Saudações a todos.

Sou um iniciante em Java e recentemente ao realizar um exercício, deparei-me com uma dúvida que me está a tirar do sério.

O programa é muito simples, basicamente é um jogo para adivinhar um número entre 1 a 10. Enquanto o input do utilizador não for igual ao número que é gerado pelo programa, o programa corre sempre até ao número ter sido adivinhado.

Tudo funciona conforme o pretendido, excepto o facto de o programa imprimir sempre um '?' apartir da 2ª vez em que é pedido ao utilizador para introduzir um número.

O código que tenho é o seguinte:

public class MyExercises {

public static void main (String agrs[]){
System.out.println("Welcome to the guessing game. You will have to guess a number from 1 to 10.");

int userNumber;
int genNumber;

do {

System.out.print("What is the number? Can you guess it? :\n");

userNumber = TextIO.getInt();
genNumber = (int)(Math.random() * 11);

if (genNumber == 0){
genNumber++;
}

if (userNumber == genNumber){
System.out.print("You've guess it! The number was " + genNumber);

}else if (userNumber != genNumber){
 System.out.print("Sorry, you have failed. The right number was " + genNumber + "\n");
 userNumber = 0;

}

}while (genNumber != userNumber);

}

}

E abaixo está uma imagem com o resultado. Espero que dê para se perceber bem.

http://i952.photobucket.com/albums/ae9/PlayerZero6/duvida_zpspcobydmh.png

Agradeço desde já qualquer feedback que me possa iluminar neste caso.

Link to comment
Share on other sites

HappyHippyHippo

não te estás a esquecer de fazer a referênca à classe TextIO ? que classe é essa ?

ps:

}else /* if (userNumber != genNumber) */ {
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

A classe TextIO é a classe que estou a utilizar para recolher o input do utilizador, em vez de utilizar o scanner, e está no default package do programa (copei o ficheiro TextIO.Java para a pasta do programa e para o package).

p.s. segui a tua sugestão e já eliminei o código que estava a mais.

De resto tudo me parece a estar certo. Não entendo mesmo pk motivo aquele ? aparece sempre ali. Será que é uma daquelas coisas sem resposta aparente? :\

Edited by pLayerZero
Link to comment
Share on other sites

De facto, ao utilizar o Scanner em vez do TextIO para recolher o input do utilizador, o tal caracter '?' desaparece. Porque motivo, ainda não percebi, mas só pode mesmo ter a haver com isso. Enfim, pelo menos consegui já meter o programa a funcionar exactamente como pretendia.

Obrigado pelo feedback HappyHippyHippo. Como sempre, uma pessoa nunca fica mal servida com as tuas respostas hehe 🙂 um bem haja.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.