Java报cannot find symbol编译错误:计算3个月利息代码报错原因
Java编译错误原因及修复方案
具体报错原因
- 循环变量
i未声明类型:Java为强类型语言,所有变量使用前必须先声明类型,你在for循环中直接写i=0,没有提前定义i的类型,导致编译器找不到对应变量,触发前3个cannot find symbol错误。 result变量作用域超出访问范围:你在for循环内部声明了int result,该变量的作用域仅限for循环的大括号内部,循环结束后在外部调用System.out.println(result)时,编译器无法找到该变量,触发第4个错误。
另外你现有代码的业务逻辑和需求不符:当前逻辑是每月扣减本金的10%,和「按10%利率累计3个月利息」的要求不符,且用int类型计算金额会丢失小数精度,建议改用double类型存储金额。
修复后代码
import java.util.Scanner; public class showCase { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 存储初始本金用于后续计算总利息 double initialAmount = scanner.nextDouble(); double currentAmount = initialAmount; // 声明循环变量i的类型为int for(int i=0; i<3; i++) { // 计算当月利息后累加到当前本金 double monthInterest = currentAmount * 0.1; currentAmount += monthInterest; } // 总利息=累计后总金额 - 初始本金 double totalInterest = currentAmount - initialAmount; System.out.println("3个月累计利息为:" + totalInterest); } }
内容的提问来源于stack exchange,提问作者nathon c
相关产品推荐
相关产品推荐

