如何将Java减法测验代码中的while循环替换为等效for循环
Java减法测验while循环转for循环方案
你只需要按照for循环的三要素(初始值、循环条件、迭代逻辑)对应替换原while逻辑即可,二者运行逻辑完全等价,不会改变任何执行结果。
具体改动步骤
- 删除原代码中单独定义的
int count = 0;声明语句 - 删除while循环末尾的
count++;语句 - 将原
while (count < NUMBER_OF_QUESTIONS)替换为for循环声明
修改后完整代码
import java.util.Scanner; public class SubtractionQuizLoop { public static void main(String[] args) { final int NUMBER_OF_QUESTIONS = 5; // 题目总数 int correctCount = 0; // 答对题目计数 long startTime = System.currentTimeMillis(); String output = ""; // 输出字符串初始为空 Scanner input = new Scanner(System.in); // 替换后的for循环,三要素完全对应原while逻辑 for (int count = 0; count < NUMBER_OF_QUESTIONS; count++) { // 1. 生成两个随机个位数整数 int number1 = (int)(Math.random() * 10); int number2 = (int)(Math.random() * 10); // 2. 如果number1小于number2,交换二者的值 if (number1 < number2) { int temp = number1; number1 = number2; number2 = temp; } // 3. 提示学生回答“number1 - number2的结果是多少?” System.out.print( "What is " + number1 + " - " + number2 + "? "); int answer = input.nextInt(); // 4. 批改答案并展示结果 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"); 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 + " seconds\n" + output); } }
逻辑一致性说明
原while循环的执行流程和替换后的for循环完全一致:都是从count=0开始,每执行完一轮循环count自增1,当count等于5时终止循环,所有变量的运算逻辑、输出结果、计时逻辑都不会发生任何变化。
内容的提问来源于stack exchange,提问作者Dylan Thevenard
相关产品推荐
相关产品推荐

