java - 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;
}
解决方案
如果你想使用一种方法来减少重复,你可以这样做
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;
}
推荐阅读
- angular - 为什么我应该在子模块中包含 CommonModule?
- javascript - Laravel 基于另一个选择框填充选择框
- javascript - zlib 冻结节点事件循环
- json - 在 Scala 中过滤和更新 JSON
- javascript - 在 angularjs 组件中使用 Bootstrap 网格
- javascript - .then 没有被承诺这是未定义的
- python - Pandas - 读取 csvs 时忽略格式化的数据类型
- vuejs2 - 多个输入输出单个对象
- excel - 创建一个每日花名册,其中包含一个名单并随机为员工职位分配名称
- macos - MacOS Mojave 上的 Apache Web 服务器问题