Jump to content

Recommended Posts

Posted

Boas,

Comecei a aprender Java num site chamado codecademy.com há alguns dias e, após algumas lições, decidi aventurar-me e testar os meus conhecimentos até então aprendidos com algo básico e simples. No entanto, após execução do obtido, nada acontece. Abaixo apresento o código:

class Wood {

//Variables
int WoodPrice;
int Durability;
int Quality;
int Quantity;
int HandMoney = 10000;
int BankMoney = 10000;
int UpdatedHandMoney;
int TotalPrice;
//Class Constructor
public Wood(int Durability,int Quality,int Quantity) {

WoodPrice = ((Durability + Quality) / 2) * Quantity;

}

public void CheckBank() {
System.out.println("You currently have " + BankMoney + "$ on your bank account.");
}

public void WoodInfo() {
System.out.println("Wood Information");
System.out.println("Durability: " + Durability);
System.out.println("Quality: " + Quality);
System.out.println("Wood Price: " + WoodPrice + "$");
}

public void BuyWood() {
if(HandMoney > WoodPrice) {

    System.out.println("You have bought the wood.");
    UpdatedHandMoney = HandMoney - WoodPrice;
    System.out.println("You're current balance is now " + UpdatedHandMoney + "$");
    System.out.println("You still have " + BankMoney + "$ in your bank account");

}
else if(HandMoney == WoodPrice) {

    System.out.println("You have bought the wood.");
    System.out.println("You are out of money");
    System.out.println("You still have " + BankMoney + "$ on your bank.");

}
else if(HandMoney + BankMoney >= WoodPrice) {

    System.out.println("You don't have enough money on you but you can transfer some from the bank");

}
else if(HandMoney + BankMoney >= WoodPrice) {

    System.out.println("You don't have enough money to buy this wood.");

}
}

public static void main(String[] args){
//Main
Wood Pine = new Wood(100,5,100);

Pine.WoodInfo();
Pine.BuyWood();

}
}

Não obtive qualquer tipo de erro por parte do Java, mas simplesmente nada acontece, ao contrário do que eu previa.

Desculpem lá erros básicos que vos possam "irritar" 🙂

Obrigado

Posted (edited)

O que previas?

Vê e diz-me a diferença que existe aqui

else if(HandMoney + BankMoney >= WoodPrice) {

	 System.out.println("You don't have enough money on you but you can transfer some from the bank");

}
else if(HandMoney + BankMoney >= WoodPrice) {

	 System.out.println("You don't have enough money to buy this wood.");

}
Edited by iron

Cumprimentos,
iron

Posted

Olá, além do comentário acima, define lá "não acontece nada"

Não aparece nada na consola?

nem sequer os prints:

System.out.println("Wood Information");
System.out.println("Durability: " + Durability);
System.out.println("Quality: " + Quality);
System.out.println("Wood Price: " + WoodPrice + "$");

?

Como estás a compilar e executar o código?

EDIT:

também: diz-nos lá onde está a atribuir os valores às variaveis da classe (membros)? nao vejo...

Posted

Sim o main está lá, mas ainda assim não sei como ele compilou (se é que compilou) nem como executou o código.

O segundo ponto é que não há atribuição de valores aos membros da classe - esperava ver algo no construtor. Obviamente essas variáveis estarão vazias quando utilizadas noutros métodos...

Posted

Certo... E algumas delas estarão com esse valores para sempre!

Vamos esperar pelo Syvered....

o segredo do problema é : quais são esses valores ?

Não, o segredo é saber o que "nada acontece" quer de facto dizer...

Posted

Não, o segredo é saber o que "nada acontece" quer de facto dizer...

olha bem para o código, é facil deduzir o que o ele quer dizer com "não faz nada"

é obvio que faz os println, se o código compila (o próprio disse que executou-o, que dizer que compilou), então o problema é que o código não faz o que ele quer

volto o dizer, o segredo para resolver o problema já foi dito aqui por todos : as variáveis não estão vazias, mas quais os valores dessas variáveis e porquê ?

nota : e para quem sabe programar, basta olhar para o construtor da classe para perceber !!!

  • Vote 2
IRC : sim, é algo que ainda existe >> #p@p
Posted

Boas!

Estou com uma forte dificuldade em apresentar o menu.

Não estou a inserir o código dentro do metido "main", e quando o faço da erro. Pede novos motodos, e ainda assim apresenta erro!

ps: a função "mostrarMenu", serve para apresentar os menus.

static String[] menuPrincipal = {"### Menu Principal ###",
		    "1 - Novo Utente",
		    "2 - Pesquisa Utente",
		    "3 - Editar Utente",
		    "4 - Estatisticas",
		    "0 - Sair..."
		    };
static void metodoMenuPrincipal(){
 mostrarMenu(menuPrincipal, 6);
 System.out.println("Escolha uma das seguistes opções.");
 int opcaoMenuPrincipal=sc.nextInt();

private static void mostrarMenu(String[] menu,int numero0pcoes){
   for(int i = 0; i < numero0pcoes; i++){
 System.out.println(menu[i]);

}
  }
Posted (edited)

Boas!

Estou com uma forte dificuldade em apresentar o menu.

Não estou a inserir o código dentro do metido "main", e quando o faço da erro. Pede novos motodos, e ainda assim apresenta erro!

ps: a função "mostrar

que código é que inseres no método main?

que erros é que são apresentados ?

que métodos são pedidos ?

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p

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
×
×
  • 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.