You need to enable JavaScript to run this app. Java输出1111-9999数值时触发ArithmeticException: / by zero原因
优惠活动
大模型
产品
解决方案
定价
更多

Java输出1111-9999数值时触发ArithmeticException: / by zero原因

程序算术异常根因与修复

异常触发本质

Java的整数除法、取模运算不允许右侧操作数为0,只要运算过程中出现除数为0的情况,就会直接抛出ArithmeticException: / by zero,不存在自动容错机制。

代码存在的核心问题

  • 零值无防护:循环遍历1111-9999的整数时,拆分出的个、十、百、千位数值完全可能为0(例如1200的个位为0、1024的百位为0)。当前代码直接拿这些数位值作为取模运算的右操作数,一旦碰到值为0的数位,立刻触发除以零报错。
  • 逻辑方向错位:原需求是筛选区间内可被输入整数n整除的数,核心判断应该是「当前遍历数i对n取模结果为0」,但现有代码的判断逻辑是「输入的n对四位数的每一位取模结果为0」,完全偏离最初的程序目标。

对应修复方案

  1. 对齐需求逻辑:将if判断条件替换为i % n == 0,确保判断的是数i能否被输入值n整除。
  2. 增加零值拦截:如果需要保留“四位数所有数位无0、且数位可整除n”的拓展规则,在取模判断前先检查所有拆分出的数位值是否为0,只要任意数位为0直接跳过当前数,不执行后续取模运算。
  3. 前置输入校验:读取到输入的n值后先判断是否为0,直接给出非法输入提示,避免进入循环后触发运算异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 04:36:11