简体   繁体   中英

How can I add a method or make this code so that I am not repeating myself so many times?

I have developed this code for a Rick and Morty character quiz and the problem I am now facing is repetition I know my code should not be this redundant and maybe the implementation of a method or something might help especially because that same if statement after every question is the same. but I am not sure how to get started so if anyone could help me clean up and or get rid of all the repeating if statements it would be much appreciated. BTW don't mind the repeating question as I plan to fill that in later. I did, however, number it to show that it changes but again the if statement remains the same.

/* Name: Armaan
 * Date: Saturday, November 23rd, 2019
 * Course: Computer Science
 * Description: Rick and Morty quiz
 */

import hsa.Console;
import java.awt.*;

public class RickandMorty
{
  static Console c;
  public static void main(String[] args)
  { 
    c = new Console();

    character rick = new character();
    rick.selections = 0;
//    rick.description = ("");

    character morty = new character();
       morty.selections = 0;
//    morty.description = ("");

    character summer = new character();
       summer.selections = 0;
//    summer.description = ("");

    character jerry = new character();
       jerry.selections = 0;
//    jerry.description = ("");


       while(rick.selections < 5 && morty.selections < 5 && summer.selections < 5 && jerry.selections < 5){

       c.print("1. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice = c.readString();
       if (choice.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice.equalsIgnoreCase("D")){
       jerry.selections++;
       }


      c.print("2. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice1 = c.readString();
       if (choice1.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice1.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice1.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice1.equalsIgnoreCase("D")){
       jerry.selections++;
       }


        c.print("3. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice2 = c.readString();
       if (choice2.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice2.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice2.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice2.equalsIgnoreCase("D")){
       jerry.selections++;
       }


        c.print("4. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice3 = c.readString();
       if (choice3.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice3.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice3.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice3.equalsIgnoreCase("D")){
       jerry.selections++;
       }


        c.print("5. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice4 = c.readString();
       if (choice4.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice4.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice4.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice4.equalsIgnoreCase("D")){
       jerry.selections++;
       }

   if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

         c.print("6. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice5 = c.readString();
       if (choice5.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice5.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice5.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice5.equalsIgnoreCase("D")){
       jerry.selections++;
       }

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

               c.print("7. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice6 = c.readString();
       if (choice6.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice6.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice6.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice6.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

               c.print("8. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice7 = c.readString();
       if (choice7.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice7.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice7.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice7.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

         c.print("9. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice8 = c.readString();
       if (choice8.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice8.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice8.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice8.equalsIgnoreCase("D")){
       jerry.selections++;
       }

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("10. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice9 = c.readString();
       if (choice9.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice9.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice9.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice9.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("11. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice10 = c.readString();
       if (choice10.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice10.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice10.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice10.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("12. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice11 = c.readString();
       if (choice11.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice11.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice11.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice11.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("13. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice12 = c.readString();
       if (choice12.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice12.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice12.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice12.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

         c.print("14. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice13 = c.readString();
       if (choice13.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice13.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice13.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice13.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

         c.print("15. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice14 = c.readString();
       if (choice14.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice14.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice14.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice14.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("16. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice15 = c.readString();
       if (choice15.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice15.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice15.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice15.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("17. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice16 = c.readString();
       if (choice16.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice16.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice16.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice16.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

        c.print("18. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice17 = c.readString();
       if (choice17.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice17.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice17.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice17.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

       c.print("19. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice18 = c.readString();
       if (choice18.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice18.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice18.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice18.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;

       c.print("20. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
       String choice19 = c.readString();
       if (choice19.equalsIgnoreCase("A")){
       rick.selections++;
       }
       if (choice19.equalsIgnoreCase("B")){
       morty.selections++;
       }
       if (choice19.equalsIgnoreCase("C")){
       summer.selections++;
       }
       if (choice19.equalsIgnoreCase("D")){
       jerry.selections++;
       } 

        if (rick.selections == 5) break;
       if (morty.selections == 5) break;
       if (summer.selections == 5) break;
       if (jerry.selections == 5) break;





       }


  }
}
class character {
  int selections;
  String descprition;


}

If you want to use a method to reduce repitition, you could do this

    import hsa.Console;
    import java.awt.*;

    public class RickandMorty
    {
      static character rick, morty, summer, jerry;
      static Console c;
      public static void main(String[] args)
      { 
        c = new Console();

        rick = new character();
        rick.selections = 0;
    //    rick.description = ("");

        morty = new character();
           morty.selections = 0;
    //    morty.description = ("");

        summer = new character();
           summer.selections = 0;
    //    summer.description = ("");

        jerry = new character();
           jerry.selections = 0;
    //    jerry.description = ("");


           while(rick.selections <= 5 && morty.selections <= 5 && summer.selections <= 5 && jerry.selections <= 5){

           ask("1. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
           ask("2. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |");
        //.. do this for all your questions. If you want, make an array/arraylist with the questions, and run a loop

        //also, I removed the breaks, because they were redundant. They are already the loop condition





           }


      }
    public static void ask(String q){
           c.print(q);
           String choice = c.readString();
           if (choice.equalsIgnoreCase("A")){
           rick.selections++;
           }
           if (choice.equalsIgnoreCase("B")){
           morty.selections++;
           }
           if (choice.equalsIgnoreCase("C")){
           summer.selections++;
           }
           if (choice.equalsIgnoreCase("D")){
           jerry.selections++;
           }
        }

    }
    class character {
      int selections;
      String descprition;


    }

Since the only thing that differs is the text of the 20 questions, create an array with the question texts, and iterate the array:

public class RickandMorty {
    private static final String[] QUESTIONS = {
        "1. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "2. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "3. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "4. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "5. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "6. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "7. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "8. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "9. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "10. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "11. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "12. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "13. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "14. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "15. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "16. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "17. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "18. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "19. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
        "20. Pick a fear | A Responsibility | B Spiders | C Death | D Being Alone |",
    };

    private character rick = new character();
    private character morty = new character();
    private character summer = new character();
    private character jerry = new character();

    public static void main(String[] args) {
        new RickandMorty().run();
    }
    private void run() {
        Console c = new Console();
        OUTER: for (;;) {
            for (String question : QUESTIONS) {
                c.print(question);
                String choice = c.readString();
                if (choice.equalsIgnoreCase("A")) {
                    rick.selections++;
                    if (rick.selections == 5) break OUTER;
                }
                if (choice.equalsIgnoreCase("B")) {
                    morty.selections++;
                    if (morty.selections == 5) break OUTER;
                }
                if (choice.equalsIgnoreCase("C")) {
                    summer.selections++;
                    if (summer.selections == 5) break OUTER;
                }
                if (choice.equalsIgnoreCase("D")) {
                    jerry.selections++;
                    if (jerry.selections == 5) break OUTER;
                }
            }
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM