私は、ユーザーが投票したときにyes/noの回答を格納する2D配列を持っています。システムに行2などに行くと、投票者IDは列です、私が必要とするのは、各質問の投票数を得るためにはい/いいえ答えの数を数えることです。2D配列をループし、各行の結果を別々に数えます(Java)
私はアレイ全体をループし、yes/noの答えを計算しています(これは1つの質問だけが必要な場合に有効です)。しかし、システムに各行の結果を表示させることはできません質問)を繰り返します。ここで
は、これは私が答え
System.out.println("Enter your first name here: ");
String first = Scanner.nextLine();
System.out.println("Enter your surname here: ");
String surname = Scanner.nextLine();
System.out.println("Enter your city here: ");
String city = Scanner.nextLine();
User user1=new User();
int vid=user1.getTheIndex(first, surname, city);
System.out.println("Enter your answer for the question: ");
String theanswer = Scanner.nextLine();
if(theanswer.toUpperCase().equals("YES"))
{
arrayOfAnswers[qid][vid]=theanswer;
voteList.add(arrayOfAnswers);
System.out.println("Thanks for voting. \n");
}
else if(theanswer.toUpperCase().equals("NO"))
{
arrayOfAnswers[qid][vid]=theanswer;
voteList.add(arrayOfAnswers);
System.out.println("Thanks for voting. \n");
}
else
{
System.out.println("You must enter a yes and no answer, please try again.");
}
を格納していますどのようにされており、これは私がカウントしようとしているループで答え
public static List<String[][]> voteList = new ArrayList<String[][]>();
public static String[][] arrayOfAnswers = new String[100][100];
public static List<Referendum> referendumList= new ArrayList<Referendum>();
を格納し、私の配列です。各行(質問)のはい/いいえの回答
for (Referendum q: Menu.referendumList)
{
int i=0;
int yesCount = 0;
int noCount = 0;
for(int j=0; j<Menu.arrayOfAnswers[i].length; j++)
{
if(Menu.arrayOfAnswers[i][j] != null)
{
if(Menu.arrayOfAnswers[i][j].equals("yes"))
{
yesCount++;
}
else if(Menu.arrayOfAnswers[i][j].equals("no"))
{
noCount++;
}
}
}
System.out.print("Referendum : " + q.question + " \n");
System.out.println("Votes yes: " + yesCount);
System.out.println("Votes no: " + noCount + "\n");
}
この方法で2D配列を必要としませんか?それは理にかなっており、より論理的なアプローチのように思えます。 – JHargreaves
いいえ、あなたはそれを必要としません。しかし、再び、それは依存しています。私のアプローチはOOPスタイルのほうが... – ACV