Java轨迹计算代码编译报错求助:Scanner及变量相关问题
解决Java轨迹计算代码的编译错误
问题分析与修复步骤:
- 缺少Scanner类导入:
Scanner类属于java.util包,必须在类文件顶部添加导入语句,否则编译器无法识别该类。 - 变量名拼写错误:定义变量时写的
intialSpeed少了字母'i',后续使用的initialSpeed与定义名不匹配,导致变量未定义错误。 - 变量名不一致:错误信息中出现的
scnr变量与代码里的scanner不统一,需确保全程使用同一个变量名。 - 可选优化:
System.out.format无需拼接字符串,直接使用带占位符的格式字符串更简洁。
修正后的完整代码:
import java.util.Scanner; public class TrajectoryModelingIntro { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double degrees; double time; double distance; double initialSpeed; // 修正拼写错误 System.out.println("Enter an initial speed: "); initialSpeed = scanner.nextDouble(); for (degrees = 25.00; degrees < 90.00; degrees += 5.00) { time = 2 * initialSpeed * Math.sin(Math.toRadians(degrees)) / 9.8; distance = initialSpeed * time * Math.cos(Math.toRadians(degrees)); // 合并格式化输出,写法更规范 System.out.format("At angle %.2f projectile travels %.2f meters%n", degrees, distance); } scanner.close(); } }
关键修正说明:
- 顶部添加
import java.util.Scanner;,解决Scanner类找不到的问题; - 统一变量名为
initialSpeed,消除“找不到符号”的错误; - 合并多条
System.out.format语句,简化输出逻辑,同时保证格式正确。
内容的提问来源于stack exchange,提问作者John Obeto
相关产品推荐
相关产品推荐

