Я делаю программу викторины. Первый шаг, я беру вопросы викторины и их правильные ответы от учителя/пользователя. У меня есть дочерний класс с именем TrueFalseQuestion, который принимает логический ответ модели и строковый вопрос в качестве параметра. Я создал массив типов TrueFalseQuestion, и я застрял в этой части, где я запускаю код, вставляю вопрос и неважно, является ли ответ модели, который я вставил, true или false, он всегда сохраняется как false, когда я печатаю это из. ПОМОГИТЕ? Вот эта часть моего кода:Всегда получая «ЛОЖНЫЙ»
System.out.println("How many true or false questions would you like to include in your quiz?");
int l=s.nextInt();
TrueFalseQuestion[] qu2= new TrueFalseQuestion[l];
int x;
for(x=0;x<l;x++){
System.out.println("Please insert question "+(x+1)+":\n");
String Q2=s.next();
System.out.println("Please insert the correct answer");
boolean A2=s.nextBoolean();
qu2[x]=new TrueFalseQuestion(Q2,A2);
System.out.println(qu2[x].GetCorrectAnswer());
}
EDIT: Вот TrueFalseQuestion код
public class TrueFalseQuestion extends Question {
private boolean CorrectB;
public TrueFalseQuestion(String qu, boolean b){
super(qu);
}
@Override
public void GetQuestion() {
System.out.println(getMyText()+"\n Is this statement true or false?");
}
@Override public String GetAnswer() {
System.out.println("Insert Answer: ");
boolean MyAnswer=s.nextBoolean();
return Boolean.toString(MyAnswer);
}
@Override public String CheckAnswer() {
return Boolean.toString(GetAnswer().equalsIgnoreCase(Boolean.toString(GetCorrectAnswer())));
}
/** * return the MyAnswer//* * return the CorrectAnswer/public boolean GetCorrectAnswer() { return CorrectB; } /* * return the MyAnswer */
}
Возможно, релевантно: http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java, хотя вы не показываете фактический код «сравнить ответы». –
Вы используете == вместо '.equals()'? Вот почему. – ha9u63ar
Мы должны увидеть ваш код для 'TrueFalseQuestion' – dkatzel