"백만장자가되고 싶은 사람"게임을 만들어야합니다. 게임은 파일로 작업해야합니다 (모든 정보가있는 사용자 파일 작성 / 작성). 질문은 txt 파일에서 무작위로 선택되어 "intrebareSIraspuns [6] [15]"(6-> 1 개 질문, 4 개 답변, 1 개 정답; 15 개-> 질문)에 저장됩니다. 질문의 이름은 "questionNr"이며 각 정답 이후에 증가합니다. 내 문제는 사용자가 질문에 대한 정답을 제공해야 할 때입니다. 사용자는 콘솔에 대답의 해당 문자 (A, B, C, D)를 입력해야하지만 정답을 입력하면 결과가 항상 잘못됩니다. 문제가있는 곳과 콘솔의 출력을 확인하기 위해 조금 더 길게 만든 올바른 질문 확인을위한 코드를 넣을 것입니다.
다음은 코드입니다.
/* *
* *
* ANSWER CHECK *
* *
* *
*/
public int check()
{
Scanner input=new Scanner(System.in);
int ret=0;
System.out.println("Type your answer: ");
userAnswer=input.next();
if(intrebareSIraspuns[5][questionNr].equals(intrebareSIraspuns[1][questionNr]))
{
ret=1;
}
if(intrebareSIraspuns[5][questionNr].equals(intrebareSIraspuns[2][questionNr]))
{
ret=2;
}
if(intrebareSIraspuns[5][questionNr].equals(intrebareSIraspuns[3][questionNr]))
{
ret=3;
}
if(intrebareSIraspuns[5][questionNr].equals(intrebareSIraspuns[4][questionNr]))
{
ret=4;
}
System.out.println("Return = " + ret);
System.out.println("User Answer =" + userAnswer + ".");
if((userAnswer=="A") && (ret==1))
{
answerVar=1;
System.out.println("The corect answer is: A. " + intrebareSIraspuns[1][questionNr]);
}
else
if((userAnswer=="B") && (ret==2))
{
answerVar=2;
System.out.println("The corect answer is: B. " + intrebareSIraspuns[2][questionNr]);
}
else
if((userAnswer=="C") && (ret==3))
{
answerVar=3;
System.out.println("The corect answer is: C. " + intrebareSIraspuns[3][questionNr]);
}
else
if((userAnswer=="D") && (ret==4))
{
answerVar=4;
System.out.println("The corect answer is: D. " + intrebareSIraspuns[4][questionNr]);
}
else
{
answerVar=5;
System.out.println("Your answer is wrong!");
if(ret==1)
{
answerVar=6;
System.out.print(" The corect answer was: A. " + intrebareSIraspuns[1][questionNr] + "\n");
}
else
if(ret==2)
{
answerVar=7;
System.out.print(" The corect answer was: B. " + intrebareSIraspuns[2][questionNr] + "\n");
}
else
if(ret==3)
{
answerVar=8;
System.out.print(" The corect answer was: C. " + intrebareSIraspuns[3][questionNr] + "\n");
}
else
if(ret==4)
{
answerVar=9;
System.out.print(" The corect answer was: D. " + intrebareSIraspuns[4][questionNr] + "\n");
}
}
input.close();
return answerVar;
}
콘솔 출력은 다음과 같습니다.
0081 2004 년 누가 'EastEnders'로 돌아와 전국 전력망에 560 메가 와트 전력 급증을 일으켰습니까? A. 불결한 Fred B. Smutty Sam C. Grubby Gordon D. Dirty Den ANSWER. Dirty Den 답을 입력하십시오. D Return = 4 사용자 답변 = D. 당신의 대답은 틀 렸습니다! 핵심적인 대답은 다음과 같습니다. D. Dirty Den
문자열은 항상 같음과 비교해야합니다.
여기에 이유를 썼습니다. ==가 String에서 작동하지 않는 이유는 무엇입니까?
if((userAnswer.equals("B")) && (ret==2)).
그리고 나머지 장소도 변경됩니다.
또한 귀하의 경우에는 char 사용을 고려하십시오. 문자열이 아닙니다. 당신이 사용하는 단일 문자로 취급되기 때문에 char
또는를 Enum
프로그램의 성능이 향상됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다