Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 该代码是否可以缩短和/或提高效率?_Java_Android - Fatal编程技术网

Java 该代码是否可以缩短和/或提高效率?

Java 该代码是否可以缩短和/或提高效率?,java,android,Java,Android,我当前的代码: 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 = rand

我当前的代码:

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!!! Your 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;

    }
}
TextView问题;
私有int qType=-1;
私有int=0;
私有void QBegin(){
//TODO自动生成的方法存根
问题=(TextView)findViewById(R.id.question);
随机=新随机();
int qType=random.nextInt(5);
开关(qType){
案例0:
问题1(“问题1”);
打破
案例1:
问题.setText(“Q2”);
打破
案例2:
问题.setText(“Q3”);
打破
案例3:
问题.setText(“Q4”);
打破
案例4:
问题.setText(“Q5”);
打破
}
提问++;
//intList.add(qType);
获取答案(qType);

/*如果(intList.contains(qType)&&askYes,代码可以变得更短、更好

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

}

基于此数据结构,缩短代码应该非常简单,因为您不需要自己洗牌答案。

这个问题更适合。首先想到的是,您将
random.nextInt()称为
在每个
if
中。因此,每次生成一个新的随机数,并且您的ifs没有穷尽。
不正确的
不正确的
之间有区别吗?唯一的区别是它们上面写的文本不同,但它们都是不正确的答案。