使用名为int score[]
的简单Java数组,我希望存储在数组中
int 1或0。
int
是由简单的数学问题和if语句提供的,如果给出了正确的答案,则允许将1添加到数组中,如果答案不正确,则允许为0。
只有5个数学问题需要尝试,每个正确答案有1个点/ 0点(或int
1/0),所以它是size[4]
的固定数组。
我正在使用for循环,但是如果我使用<= score.Length()
方法,则durn事件会使数组填充1。
每次用户回答问题时,我只希望在不覆盖前一个元素的情况下添加int
1或0来得分[4]。
if( playerTotal < computerTotal || playerTotal > computerTotal) {
System.out.printf("\n" + "Sorry, thats incorrect...try again__");
for(int i = 0; i <= score.length ;++i ) {
score[i] = 0 ;
System.out.print( " | ");
System.out.print( score[i]);
}
} else {
System.out.print( playerTotal + " is correct, very well done!");
// in.close();
for(int i = 0; i <= score.length ; i++ ) {
score[i] = 1 ;
System.out.print( " | ");
System.out.print( score[i]);
}
}
我希望在达到5个正确点后,使用存储的int
将数学游戏(yayy!)移动到下一个级别。
答案 0 :(得分:0)
如果你想设置一个元素,你不需要for循环。
删除for for循环并写入
if( playerTotal < computerTotal || playerTotal > computerTotal ) {
score[4]=0;}
else{score[4]=1;}
答案 1 :(得分:0)
score[4] = ( (playerTotal < computerTotal) || (playerTotal > computerTotal)) ? 0 : 1;
答案 2 :(得分:0)
正如评论中提到的那样,代码中的错误是循环覆盖其他值。 我不知道你是如何与用户互动的,但我提供了一个如何解决这个任务的例子。在正确的情况下,do-while会要求答案。
Scanner scanner = new Scanner(System.in);
String[] questions = {"What is 2-1?", "What is 2+1?", "What is 10-5?"};
int[] correctAnswer = {1,3,5};
//keep track of correct/incorrect answer with a boolean value
boolean[] score = new boolean[correctAnswer.length];
for(int i = 0; i < questions.length; i++) {
System.out.println(questions[i]);
do {
int input = scanner.nextInt();
score[i] = input == correctAnswer[i];
if(score[i])
System.out.println("Correct!");
else
System.out.println("Wrong, please try again..");
} while(!score[i]);
}
//do something with the score data
int sum = 0;
for(boolean b : score)
if(b) sum++;
System.out.println("You got " + sum + " points!");