2
Good evening, I’m having trouble with my code. I’m using 2 classes to develop a program that accounts for a team victory (Soccer Scoreboard style).
My problem is at the time of "if" and "Else". When I put the if
and the else
, so much inside CasaDoCorinthians
how much of this method I declared below, it appears wrong in my main method (when I call within the object the attributes);
I don’t know if it’s because this if (CasaDoCorinthians == true
), but when I only put one =
of assignment the code does not call the else
and skip the other if
from the bottom of the code - within the method void
.
What’s wrong with the code?
package futebol;
import javax.swing.JOptionPane;
public class Futebol {
String corinthians, flamengo;
boolean CasaDoCorinthians;
private int golsFeitosFlamengo, golsFeitosCorinthians;
protected int resultado;
public Futebol() {
golsFeitosFlamengo = 0;
resultado = 0;
golsFeitosCorinthians = 0;
corinthians = "camisa principal";
flamengo = "camisa principal";
}
public String getCorinthians() {
return corinthians;
}
public void setCorinthians(String newCorinthians) {
if (CasaDoCorinthians == true) {
JOptionPane.showMessageDialog(null, "O Corinthians está jogando em casa!");
} else {
JOptionPane.showMessageDialog(null, "O Flamengo está jogando em casa!");
}
}
public int getGolsFeitosFlamengo() {
return golsFeitosFlamengo;
}
public void setGolsFeitosFlamengo(int golsFeitosFlamengo) {
this.golsFeitosFlamengo = golsFeitosFlamengo;
}
public int getGolsFeitosCorinthians() {
return golsFeitosCorinthians;
}
public void setGolsFeitosCorinthians(int golsFeitosCorinthians) {
this.golsFeitosCorinthians = golsFeitosCorinthians;
}
void comecoJogo() {
if (CasaDoCorinthians == true) {
JOptionPane.showMessageDialog(null, "O Jogo é na Arena Itaquera");
} else {
JOptionPane.showMessageDialog(null, "O Jogo é no Maracanã");
}
}
void resultado() {
resultado = golsFeitosCorinthians - golsFeitosFlamengo;
if (resultado > 0) {
JOptionPane.showMessageDialog(null, "Vitória do Corinthians");
}
if (resultado < 0) {
JOptionPane.showMessageDialog(null, "Vitória do Flamengo");
} else {
JOptionPane.showMessageDialog(null, "Jogo Empatado");
}
}
}
Class 2:
package futebol;
public class Partida {
public static void main(String[] args) {
Futebol jogo = new Futebol();
jogo.comecoJogo();
jogo.CasaDoCorinthians = (true);
jogo.setGolsFeitosFlamengo(5);
jogo.setGolsFeitosCorinthians(4);
jogo.resultado();
}
}
What method are you having trouble with? Try to formulate your question better, it helps those who will answer to give a more precise answer and those who have the same doubt find your question.
– Ricardo Andrade
André, as the question was closed I cannot elaborate an answer. However, a first problem is that you are calling
jogo.comecoJogo();
beforejogo.CasaDoCorinthians = true; logo o código está imprimindo que o jogo é Maracanã. Outro problema é que o método
setCorinthians: 1. Não faz sentido e 2. Não está sendo chamado. O que você provavelmente quer é um método
setCasaDoCorinthians(Boolean houseDoCorinthians)que atribui o
Booleane potencialmente imprime as mensagens que no momento estão em
setCorinthians`.– Anthony Accioly
Finally, your code has some unused variables (e. g.,
String corinthians, flamengo;
), others that could be private (casaDoCorinthians
,resultado
), etc. For the rest, a lot can be simplified and generalized (e.g., working with two generic teams instead of just French and Flemish). I hope I’ve helped.– Anthony Accioly
Anthony Accioly’s question was not closed, but marked as pending.
– Ricardo Andrade
It is quite selfless to strive to find the problem on your own and provide a solution. But that will discourage you from getting better at asking. And it’s important that not only are the answers well prepared but the questions also so that they can help people with the same problem or doubt.
– Ricardo Andrade