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

如何在判断整数倍数的双方法Java程序中实现哨兵控制迭代?

Java倍数判断程序哨兵循环实现方案

前置修正:原有逻辑BUG修复

原代码中ismultiple方法存在逻辑错误,第二行if (x%y==1) return true;会导致非倍数场景也返回true,修正后该方法仅保留余数为0的判断即可。

哨兵循环实现

本次选择-1 -1作为哨兵终止值,用户输入该值时直接终止程序,完整代码如下:

import java.util.Scanner; 

public class Multiples {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // 死循环实现重复询问,仅触发哨兵条件时退出
        while (true) {
            System.out.printf("请输入两个用空格分隔的整数,输入-1 -1即可退出程序:%n");
            int number2 = input.nextInt();
            int number1 = input.nextInt();
            // 哨兵条件判断,符合则直接退出循环
            if (number2 == -1 && number1 == -1) {
                System.out.println("程序已终止");
                break;
            }
            // 原有倍数判断逻辑
            if (ismultiple(number1, number2)) {
                System.out.println(number1 + " 是 " + number2 + " 的倍数");
            } else {
                System.out.println(number1 + " 不是 " + number2 + " 的倍数");
            }
        }
        input.close();
    }

    // 修正后的倍数判断方法
    public static boolean ismultiple(int x, int y) {
        return x % y == 0;
    }
}

核心修改说明

  • 外层添加无限循环包裹原有业务逻辑,保证程序可以重复接收用户输入
  • 新增哨兵条件判断,读取到约定的终止输入时直接中断循环退出程序,不会影响原有业务逻辑的执行
  • 优化冗余代码,ismultiple方法直接返回余数判断结果即可,无需多余分支
  • 新增Scanner资源关闭操作,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:15:04