Помощь с табличными массивами и int в других методах - PullRequest
0 голосов
/ 12 ноября 2018

Привет, я пишу следующую программу для своего java-класса, и я не могу понять, почему мой массив не работает, а также как заставить подсчитывать целые числа, даже если они находятся в разных классах, если это невозможно, хорошо, но что-то другое методы сделать это.

 public static void main(String[] args) {

    //char{}{} Vote = {{President, Karl Karlington, Bob Mcbob, Nope Noper},{Vice President, Not Optiono, Hap Pinino, Rad ish},{Person, Not Person, Also Person, Person Person}}; 

    System.out.print("Welcome to voteathon 10,000!!\n");
    System.out.print("We will be displaying the canidates shortly\n");
    //display(Vote);
    PresVote(Nope, Bob, Karl);
    VPresVote(Not, Hap, Rad);
    PersonVote(NotP, AlsoP, Person);

    System.out.printf("For president Karl had: %d Bob had: %d Nope had: %d \n", Karl, Bob, Nope);
    System.out.printf("For vice president Not had: %d Hap had: %d Rad had: %d \n", Not, Hap, Rad);
    System.out.printf("For person Not had: %d Also had: %d Person had: %d \n", NotP, AlsoP, Person);

    }
public static void display(int x[][]){
    for(int row=0;row<4;row++){
        for(int column=0;column<x[row] .length;column++){
            System.out.print(x[row][column]+"\t");
        }
        System.out.println();
    }
}
public static void PresVote(int Nope, int Bob, int Karl){
    Scanner input = new Scanner(System.in);
    System.out.print("To vote please enter 1 2 or 3 corresponding to the table above\n");
    System.out.print("vote: ");
    int A = input.nextInt();

    if (A == 1){
        System.out.print("\nYou voted for Karl!\n");
        Karl++;

    }
    else if(A == 2){
        System.out.print("You voted for Bob!\n");
        Bob++;
       }
    else if (A == 3){
        System.out.print("You voted for Nope!\n");
        Nope++;
    }
    else{
        System.out.print("No vote invalid answer\n");
    }
}
    public static void VPresVote(int Not, int Hap, int Rad){
    Scanner input = new Scanner(System.in);
    System.out.print("To vote please enter 1 2 or 3 corresponding to the table above ");
    System.out.print("\n vote: \n");
    int A = input.nextInt();

    if (A == 1){
        System.out.print("You voted for Not!\n");
        Not++;

    }
    else if(A == 2){
        System.out.print("You voted for Hap!\n");
        Hap++;
       }
    else if (A == 3){
        System.out.print("You voted for Rad!\n");
        Rad++;
    }
    else{
        System.out.print("No vote invalid answer\n");
    }
}
    public static void PersonVote(int NotP, int AlsoP, int Person){
    Scanner input = new Scanner(System.in);
    System.out.print("To vote please enter 1 2 or 3 corresponding to the table above ");
    System.out.print("\n vote: \n");
    int A = input.nextInt();

    if (A == 1){
        System.out.print("You voted for Not!\n");
        NotP++;

    }
    else if(A == 2){
        System.out.print("You voted for Also!\n");
        AlsoP++;
       }
    else if (A == 3){
        System.out.print("You voted for Person!\n");
        Person++;
    }
    else{
        System.out.print("No vote invalid answer\n");
    }
}

Я инициализировал ints ранее, но я не знаю, если это что-то делает

1 Ответ

0 голосов
/ 12 ноября 2018

Вы не возвращаете переданные аргументы. Аргументы в этом случае локальные переменные не имеют глобальной области видимости, поэтому они не содержат информацию о выполнении, например, приращение в этом случае, когда возвращается вызов функции.

Вместо этого передайте массив, например, такой:

public static void main(String[] args) { 
    int[] president = new int[3]; //president[0] indicates 'x',president[2] say 'z' 
    Scanner input = new Scanner(System.in);
    System.out.print("To vote please enter 1 2 or 3 corresponding to the table above\n");
    System.out.print("vote: ");
    int A = input.nextInt();
    presVote(president, A);
    // rest of code
}
public static void presVote(int[] president, int A) {
    if(A == 1) {
        president[0]++; // vote count of 'x' increases by 1
    }
    // similar conditionals for other input
}

Таким образом, президентский массив будет иметь счетчик голосов.

или другим способом будет поддерживать статическую переменную int для хранения подсчета голосов для отдельных лиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...