java - Can this code be done shortened and/or be more efficient? -


my current code:

textview question;  private int qtype = -1;   private int asked = 0;  private void qbegin() {     // todo auto-generated method stub     question = (textview) findviewbyid(r.id.question);     random random = new random();     int qtype = random.nextint(5);     switch(qtype){     case 0:         question.settext("question 1");         break;     case 1:         question.settext("q2");         break;     case 2:         question.settext("q3");         break;     case 3:         question.settext("q4");         break;     case 4:         question.settext("q5");         break;     }     asked++;      //intlist.add(qtype);     getanswers(qtype);     /*if(intlist.contains(qtype) && asked <= 5){         qbegin();     } else {         answercounter.settext("congratulations!!! score : "+correct);     }*/ }  private int answer;  private void getanswers(int type) {     random random = new random();     // todo auto-generated method stub     switch(type){     case 1:         if(random.nextint(4) == 0){             answer = 1;             answer1.settext("относительно низкая температура шлаков");             answer2.settext("сложность в управлении");             answer3.settext("малая производительность");             answer4.settext("нету выделения энергии непосредственно в загрузке");         } else if (random.nextint(4) == 1){             answer = 2;             answer1.settext("сложность в управлении");             answer2.settext("относительно низкая температура шлаков");             answer3.settext("малая производительность");             answer4.settext("нету выделения энергии непосредственно в загрузке");         } else if (random.nextint(4) == 2){             answer = 3;             answer1.settext("сложность в управлении");             answer2.settext("малая производительность");             answer3.settext("относительно низкая температура шлаков");             answer4.settext("нету выделения энергии непосредственно в загрузке");         } else if (random.nextint(4) == 3){             answer = 4;             answer1.settext("сложность в управлении");             answer2.settext("малая производительность");             answer3.settext("нету выделения энергии непосредственно в загрузке");             answer4.settext("относительно низкая температура шлаков");          }          break;      case 2:         if(random.nextint(4) == 0){             answer = 1;             answer1.settext("закрытые - плавка под слоем шихты");             answer2.settext("открытые - плавка на воздухе");             answer3.settext("вакуумные - плавка в вакууме");             answer4.settext("компрессорные - плавка под избыточным давлением");         } else if (random.nextint(4) == 1){             answer = 2;             answer1.settext("открытые - плавка на воздухе");             answer2.settext("закрытые - плавка под слоем шихты");             answer3.settext("вакуумные - плавка в вакууме");             answer4.settext("компрессорные - плавка под избыточным давлением");         } else if (random.nextint(4) == 2){             answer = 3;             answer1.settext("открытые - плавка на воздухе");             answer2.settext("вакуумные - плавка в вакууме");             answer3.settext("закрытые - плавка под слоем шихты");             answer4.settext("компрессорные - плавка под избыточным давлением");         } else if (random.nextint(4) == 3){             answer = 4;             answer1.settext("открытые - плавка на воздухе");             answer2.settext("вакуумные - плавка в вакууме");             answer3.settext("компрессорные - плавка под избыточным давлением");             answer4.settext("закрытые - плавка под слоем шихты");          }          break;      case 3:         if(random.nextint(4) == 0){             answer = 1;             answer1.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");             answer2.settext("в которой используеться активное сопротивление в качестве шихты");             answer3.settext("в которой тепло не передаеться тепло излучением");             answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением");         } else if (random.nextint(4) == 1){             answer = 2;             answer1.settext("в которой используеться активное сопротивление в качестве шихты");             answer2.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");             answer3.settext("в которой используеться активное сопротивление в качестве шихты");             answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением");         } else if (random.nextint(4) == 2){             answer = 3;             answer1.settext("в которой используеться активное сопротивление в качестве шихты");             answer2.settext("в которой используеться активное сопротивление в качестве шихты");             answer3.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");             answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением");         } else if (random.nextint(4) == 3){             answer = 4;             answer1.settext("в которой используеться активное сопротивление в качестве шихты");             answer2.settext("в которой используеться активное сопротивление в качестве шихты");             answer3.settext("в которой которая делиться на компрессорную печь с активным сопротивлением");             answer4.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением");          }          break;      case 4:         if(random.nextint(4) == 0){             answer = 1;             answer1.settext("correct");             answer2.settext("incorrect");             answer3.settext("incorrect");             answer4.settext("incorrect");         } else if (random.nextint(4) == 1){             answer = 2;             answer1.settext("inorrect");             answer2.settext("correct");             answer3.settext("incorrect");             answer4.settext("incorrect");         } else if (random.nextint(4) == 2){             answer = 3;             answer1.settext("inorrect");             answer2.settext("incorrect");             answer3.settext("correct");             answer4.settext("incorrect");         } else if (random.nextint(4) == 3){             answer = 4;             answer1.settext("inorrect");             answer2.settext("incorrect");             answer3.settext("incorrect");             answer4.settext("correct");          }          break;      case 5:         if(random.nextint(4) == 0){             answer = 1;             answer1.settext("correct");             answer2.settext("incorrect");             answer3.settext("incorrect");             answer4.settext("incorrect");         } else if (random.nextint(4) == 1){             answer = 2;             answer1.settext("inorrect");             answer2.settext("correct");             answer3.settext("incorrect");             answer4.settext("incorrect");         } else if (random.nextint(4) == 2){             answer = 3;             answer1.settext("inorrect");             answer2.settext("incorrect");             answer3.settext("correct");             answer4.settext("incorrect");         } else if (random.nextint(4) == 3){             answer = 4;             answer1.settext("inorrect");             answer2.settext("incorrect");             answer3.settext("incorrect");             answer4.settext("correct");          }          break;      } } 
  • basicly, made simple app android, picks random question you, , picks specific answers, 1 of answers correct, other's aren't.
    • also after editing qbegin method, started give me questions wrong answers!!! me aswell, please.

p.s. ignore odd language!

yes, code can made shorter , nicer.

class questionwithanswers {    private final string question;   private final string[] answers;   private final string correctanswer;    public questionwithanswers( //       string question, //       string correctanswer, //       string... wronganswers, //       random rnd //   ) {     int n = wronganswers.length;     this.question = question;     this.answers = arrays.copy(wronganswers, n + 1);     this.answers[n] = correctanswer;     collections.shuffle(arrays.aslist(this.answers), rnd);   }    public boolean iscorrect(string answer) {     return answer.equals(correctanswer);   }    public string[] getanswers() {     return answers.clone();   }  } 

based on data structure, should pretty simple make code shorter, since don't need shuffle answers yourself.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -