//如何用for循环代替while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?如何用for循环替换while循环并产生相同的结果?//
进口java.util.Scanner;
public class SubtractionQuizLoop {
public static void main(String[] args) {
final int NUMBER_OF_QUESTIONS = 5; // Number of questions
int correctCount = 0; // Count the number of correct answers
int count = 0; // Count the number of questions
long startTime = System.currentTimeMillis();
String output = ""; // output string is initially empty
Scanner input = new Scanner(System.in);
while (count < NUMBER_OF_QUESTIONS) {
// 1. Generate two random single-digit integers
int number1 = (int)(Math.random() * 10);
int number2 = (int)(Math.random() * 10);
// 2. If number1 < number2, swap number1 with number2
if (number1 < number2) {
int temp = number1;
number1 = number2;
number2 = temp;
}
// 3. Prompt the student to answer "What is number1 – number2?"
System.out.print(
"What is " + number1 + " - " + number2 + "? ");
int answer = input.nextInt();
// 4. Grade the answer and display the result
if (number1 - number2 == answer) {
System.out.println("You are correct!n");
correctCount++;
}
else
System.out.println("Your answer is wrong.n" + number1
+ " - " + number2 + " should be " + (number1 - number2) + "n");
// Increase the count
count++;
output += "n" + number1 + "-" + number2 + "=" + answer +
((number1 - number2 == answer) ? " correct" : " wrong");
}
long endTime = System.currentTimeMillis();
long testTime = endTime - startTime;
System.out.println("Correct count is " + correctCount +
"nTest time is " + testTime / 1000 + " secondsn" + output);
}
}
通常我使用这个:
for (int count = 0; count < NUMBER_OF_QUESTIONS; count++) {
// your loop code
}
使用for循环,创建一个名为count
的变量,并将其初始化为0。然后使用count < NUMBER_OF_QUESTIONS
,一旦count等于NUMBER_OF_QUESTIONS,就可以退出这个循环。count++
自动增加count
值,因此您可以从循环代码中删除该语句。
你会得到这样的结果:
for (int i = 0; i < NUMBER_OF_QUESTIONS; i++) {
// 1. Generate two random single-digit integers
int number1 = (int)(Math.random() * 10);
int number2 = (int)(Math.random() * 10);
// 2. If number1 < number2, swap number1 with number2
if (number1 < number2) {
int temp = number1;
number1 = number2;
number2 = temp;
}
// 3. Prompt the student to answer "What is number1 – number2?"
System.out.print(
"What is " + number1 + " - " + number2 + "? ");
int answer = input.nextInt();
// 4. Grade the answer and display the result
if (number1 - number2 == answer) {
System.out.println("You are correct!n");
correctCount++;
}
else
System.out.println("Your answer is wrong.n" + number1
+ " - " + number2 + " should be " + (number1 - number2) + "n");
// Note that we do not use count++ here; it's moved to the for loop statement
output += "n" + number1 + "-" + number2 + "=" + answer +
((number1 - number2 == answer) ? " correct" : " wrong");
}