Java I';我正在创建一个VotingMachine,整个代码看起来还可以,但当我尝试运行它时,我可以';我没有得到我想要的结果
我的代码:Java I';我正在创建一个VotingMachine,整个代码看起来还可以,但当我尝试运行它时,我可以';我没有得到我想要的结果,java,voting,Java,Voting,我的代码: import java.util.*; public class VotingMachine { private int WuDI; private int HonST; private int HawLB; private int JanCS; private int HanGU; private int PanWG; public VotingMachine() { WuDI = 0; HonST = 0; HawLB
import java.util.*;
public class VotingMachine {
private int WuDI;
private int HonST;
private int HawLB;
private int JanCS;
private int HanGU;
private int PanWG;
public VotingMachine() { WuDI = 0; HonST = 0; HawLB = 0; JanCS = 0; HanGU = 0; PanWG = 0; }
public VotingMachine(int WuDI, int HonST, int HawLB, int JanCS, int HanGU, int PanWG) {
this.WuDI = WuDI;
this.HonST = HonST;
this.HawLB = HawLB;
this.JanCS = JanCS;
this.HanGU = HanGU;
this.PanWG = PanWG;
}
public void showVote(){
System.out.println("WuDI = " + WuDI + "vote(s)");
System.out.println("HonST = " + HonST + "vote(s)");
System.out.println("HawLB = " + HawLB + "vote(s)");
System.out.println("JanCS = " + JanCS + "vote(s)");
System.out.println("HanGU = " + HanGU + "vote(s)");
System.out.println("PanWG = " + PanWG + "vote(s)");
}
public void clear() { WuDI = 0; HonST = 0; HawLB = 0; JanCS = 0; HanGU = 0; PanWG = 0; }
public void voteWuDI() { WuDI+=1; }
public void voteHonST() { HonST+=1; }
public void voteHawLB() { HawLB+=1; }
public void voteJanCS() { JanCS+=1; }
public void voteHanGU() { HanGU+=1; }
public void votePanWG() { PanWG+=1; }
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
VotingMachine v1 = new VotingMachine();
v1.clear();
for(;;){
System.out.print("Cast your vote by entering the candidate's name: ");
String name = in.next();
if(name == "WuDI")
v1.voteWuDI();
else if(name == "HonST")
v1.voteHonST();
else if(name == "HawLB")
v1.voteHawLB();
else if(name == "JanCS")
v1.voteJanCS();
else if(name == "HanGU")
v1.voteHanGU();
else if(name == "PanWG")
v1.votePanWG();
else System.err.println("The name your entered is not exist.");
System.out.print("Do you want to continue to vote? (Y/N): ");
char ans = in.next().charAt(0);
if(ans == 'N' || ans == 'n'){
System.out.println("The result of the election is: ");
v1.showVote();
System.out.println("Thank you for your vote!");
System.exit(0);}
else continue;
}
}
}
我的代码似乎还可以,编译器没有给我任何错误消息,但我一直收到这样的消息:
Cast your vote by entering the candidate's name: WuDI
Do you want to continue to vote? (Y/N): The name your entered is not exist.
N
The result of the election is:
WuDI = 0vote(s)
HonST = 0vote(s)
HawLB = 0vote(s)
JanCS = 0vote(s)
HanGU = 0vote(s)
PanWG = 0vote(s)
Thank you for your vote!
我一直收到错误信息,选票不会累积!我真的不知道我哪里做错了!
请帮帮我,谢谢 用name.equals(“无敌”)代替name==“无敌”
当您写入==时,您正在使用标准对象比较器。仅当对象正是samen时,此选项才会返回true。所以名字和“无敌”不一样,因为它们是不同的实例,即使它们包含相同的字符
当您使用equals方法时,您是根据字符串所代表的内容来比较字符串。不要这样做。。。。name==“HonST”您需要添加一个解释,说明为什么这种方法更好,尽管这是Java开发中的常识。问题已经解决,谢谢!我刚刚意识到在这种情况下使用==是一种非常糟糕的做法。谢谢你的时间和耐心~