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

Java实现IP地址octet校验及无效项提示功能问题咨询

原代码存在的问题

  1. if判断语句末尾多写了英文分号;,会直接截断判断逻辑,导致后续大括号内的错误提示无论条件是否成立都会执行
  2. 校验逻辑写反:当前判断条件是「八位组处于合法范围」时触发错误提示,实际应该是不满足合法范围时才输出错误
  3. 缺少全局错误标记,无法判断所有八位组是否全部校验通过,也没有合法IP的输出逻辑

合法校验规则(按要求)

  • 第1个八位组:取值范围 1~255 合法
  • 第2个八位组:取值范围 0~255 合法
  • 第3个八位组:取值范围 0~255 合法
  • 第4个八位组:取值范围 1~254 合法

修正后可直接运行的完整代码

import java.util.Scanner;

public class IpCheck {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 标记是否存在非法八位组,初始值为无错误
        boolean hasInvalid = false;

        System.out.println("Please enter the first Octet:");
        int oct1 = scan.nextInt();
        if (!(oct1 >=1 && oct1 <=255)) {
            System.out.println("Octet one is incorrect.");
            hasInvalid = true;
        }

        System.out.println("Please enter the second Octet:");
        int oct2 = scan.nextInt();
        if (!(oct2 >=0 && oct2 <=255)) {
            System.out.println("Octet two is incorrect.");
            hasInvalid = true;
        }

        System.out.println("Please enter the third Octet:");
        int oct3 = scan.nextInt();
        if (!(oct3 >=0 && oct3 <=255)) {
            System.out.println("Octet three is incorrect.");
            hasInvalid = true;
        }

        System.out.println("Please enter the fourth Octet:");
        int oct4 = scan.nextInt();
        if (!(oct4 >=1 && oct4 <=254)) {
            System.out.println("Octet four is incorrect.");
            hasInvalid = true;
        }

        // 所有八位组都合法时输出IP地址
        if (!hasInvalid) {
            System.out.println("IP Address: " + oct1 + "." + oct2 + "." + oct3 + "." + oct4);
        }
        scan.close();
    }
}

逻辑说明

  • 用hasInvalid布尔变量记录是否出现过非法八位组,只要有一个八位组不合法就标记为true
  • 去掉了if语句末尾的多余分号,确保只有条件成立时才执行对应逻辑
  • 所有校验逻辑和输出格式完全匹配题目给出的要求,运行结果和示例完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:39:03