如何用嵌套if语句判断投票资格?修正Java代码逻辑错误
问题分析与修正
你的代码核心问题是嵌套if的逻辑完全矛盾:外层if (verify >= 18)已经筛选出年龄≥18的情况,进入这个分支后,verify的值必然≥18,内层的if (verify <=17)自然永远不可能成立,所以这段代码永远不会执行。
要实现投票资格判断,你需要用else分支来处理年龄<18的情况,而不是嵌套if。以下是修正后的完整代码:
import java.util.Scanner; public class exe6 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("Enter your age for verification: "); int verify = sc.nextInt(); if (verify >= 18){ System.out.println("You are eligible to vote."); } else { System.out.println("Minors are ineligible to vote"); } sc.close(); // 关闭Scanner资源,避免资源泄漏 } }
修正说明
- 用
else替代无效的嵌套if:当外层if条件不成立时(即年龄<18),自动进入else分支执行未成年人提示 - 新增
sc.close():这是基础的Java资源管理习惯,避免Scanner占用的资源无法及时释放
内容的提问来源于stack exchange,提问作者レッド・ スワン
相关产品推荐
相关产品推荐

