java投票系统错误
所以,目前我的投票系统运行良好,但现在我得到了一个除以零的代码:/。这不应该发生,因为“总整数的数值总是大于零(除非我遗漏了什么?)。不管怎么说,我希望该计划能够把选票组织成女性和男性选民,无论他们是投票给特朗普还是克林顿。 一揽子投票
import java.util.Scanner;
import javax.swing.JOptionPane;
public class vote {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Declare Strings and Initialize
String PCandidate1=null;
String Gender1=null;
String Economy1= null;
//Declare Integer
int Age;
int Trump=0;
int Clinton=0;
int Male=0;
int Female=0;
int MaleT=0;
int FemaleT=0;
int MaleC=0;
int FemaleC=0;
int Young=0;
//all data read from a dialog box comes into a string
String svalue,output ="";
//Need to Implement While loop to keep collecting data
int counter=0;
while(counter<4) {
counter++;
//Vote for Presidential Candidate and Tally the Votes!
svalue =JOptionPane.showInputDialog(null,"Will you Vote for Clinton or Trump?","Input Data", JOptionPane.QUESTION_MESSAGE);
svalue=JOptionPane.showInputDialog(null,"Are you Male or Female (M/F)?","Input Data", JOptionPane.QUESTION_MESSAGE);
if (svalue.equals("trump")||(svalue.equals("Trump")))
{
if (svalue.equals("F")||(svalue.equals("f")))
Trump++;
Female++;
FemaleT++;}
if (svalue.equals("Trump")||(svalue.equals("trump")))
{
if (svalue.equals("M")||(svalue.equals("m")))
MaleT++;
Trump++;
Male++;}
if (svalue.equals("clinton")||(svalue.equals("Clinton"))){
if (svalue.equals("M")||(svalue.equals("m")))
Clinton++;
MaleC++;
Male++;}
if (svalue.equals("Clinton")||(svalue.equals("clinton"))){
if(svalue.equals("F")||(svalue.equals("f")))
FemaleC++;
Clinton++;
Female++;}
PCandidate1= (svalue);
//Inpute Users Age
svalue=JOptionPane.showInputDialog(null,"What is Your Age?","Input Data", JOptionPane.QUESTION_MESSAGE);
Age=Integer.parseInt(svalue);
if (Age<=25)
Young++;
// Get Users Input about State of the Economoy
svalue=JOptionPane.showInputDialog(null,"Do you feel the economy is getting better?","Input Data", JOptionPane.QUESTION_MESSAGE);
Economy1= (svalue);
}
int Total=Male+Female;
//Output The Data to Form
output=output+"Users Voted For Trump: " + Trump +"\n"
+ "Users Voted For Clinton: " + Clinton+ "\n"
+"Total Users Polled: " +(Total)+"\n"
+ "Male Voters: " + Male+ "\n"
+ "Female Voters: " + Female+ "\n"
+ "% Female Voters for Clinton: " + (FemaleC/Clinton)*100+ "\n"
+ "% Male Voters for Clinton: " + (MaleC/Clinton)*100+ "\n"
+ "% Female Voters for Trump: " + (FemaleT/Total)*100+ "\n"
+ "% Male Voters for Trump: " + (MaleT/Total)*100+ "\n"
+ "Number of Young People Polled: " + Young+ "\n"
;
//write all in a dialog box
JOptionPane.showMessageDialog(null,
output,"Output:",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
# 1 楼答案
你的
if-statements
有很多问题:if's
检查一个值是否同时等于“Clinton”和“m”。这意味着你的第二个if-statement
将永远不会被输入。所以Clinton
永远不会被更新,并且总是为零。(我们还以为是俄罗斯人……)李>您需要有第二个变量来确定投票者是男性还是女性,并在第二个
if-statement
中进行检查,而不是覆盖svalue
旁注:适当的缩进将帮助您发现这些错误
更像这样: