如何添加方法或编写此代码,以免重复多次?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何添加方法或编写此代码,以免重复多次?相关的知识,希望对你有一定的参考价值。

我已经为Rick and Morty角色测验开发了这段代码,我现在面临的问题是重复,我知道我的代码不应该是多余的,也许方法的实现或某些东西可能会有所帮助,尤其是因为如果if语句之后每个问题都是一样的。但是我不确定如何开始,所以如果有人可以帮助我清理和/或摆脱所有重复的if语句,将不胜感激。 BTW不介意重复的问题,因为我打算稍后再填写。但是,我对它进行了编号,以表明它发生了变化,但是if语句仍然保持不变。

/* 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;


}
答案
由于唯一不同的是20个问题的文本,请使用问题文本创建一个数组,然后迭代该数组:

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; } } } } }

以上是关于如何添加方法或编写此代码,以免重复多次?的主要内容,如果未能解决你的问题,请参考以下文章

Sublime Text自定制代码片段(Code Snippets)

VS2015 代码片段整理

如何在Sublime Text中添加代码片段

如何参数化泛型方法以免重复测试结构?

创建自己的代码片段(CodeSnippet)

创建一个具有相同元素重复多次的数组