You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java判断三个数值是否在10-20区间代码仅输出无符合结果问题排查

问题分析

存在三个核心及次要问题:

  • 首要问题:变量first、second、third未正确获取用户输入的数值。Java中int类型成员变量默认初始值为0,若未将用户输入内容赋值给三个变量直接参与判断,所有数值均不满足10~20的区间条件,全部if分支无法命中,最终只会执行else分支输出对应结果。
  • 次要问题1:区间判断规则不匹配常规需求。现有判断逻辑first >10 && first <20会排除10和20两个边界值,常规青少年年龄统计包含10到20的边界值,需要调整判断符号。
  • 次要问题2:分支逻辑冗余度极高。3个变量需要编写7个if分支,可维护性极差,变量数量增加时代码量会指数级上升。
修复方案

基础修复(仅解决错误输出问题)

补充用户输入读取逻辑,将用户输入的三个整数正确赋值给first、second、third变量即可,原有分支逻辑可正常运行。如果不需要包含10和20的边界,无需修改原有判断条件。

优化修复(简化代码逻辑)

推荐采用先计数再输出的逻辑,大幅减少代码量,提升可维护性,完整可运行代码如下:

import java.util.Scanner;

public class TeenagerStatistic {
    public static void main(String[] args) {
        Scanner inputScanner = new Scanner(System.in);
        // 读取用户输入的三个数值
        System.out.print("输入第一个数值:");
        int first = inputScanner.nextInt();
        System.out.print("输入第二个数值:");
        int second = inputScanner.nextInt();
        System.out.print("输入第三个数值:");
        int third = inputScanner.nextInt();
        inputScanner.close();

        int teenCount = 0;
        // 区间判断,包含10、20边界,若不需要边界可修改为>10和<20
        if (first >= 10 && first <= 20) teenCount++;
        if (second >= 10 && second <= 20) teenCount++;
        if (third >= 10 && third <= 20) teenCount++;

        // 按计数输出结果
        if (teenCount == 3) {
            System.out.println("All of them are teenagers");
        } else if (teenCount == 2) {
            System.out.println("Two of them are teenagers");
        } else if (teenCount == 1) {
            System.out.println("One of them is a teenager");
        } else {
            System.out.println("None of them is a teenager");
        }
    }
}

内容的提问来源于stack exchange,提问作者KyawLinThant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:24:01