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

输入无效三角形边长时代码未输出预期结果,应如何排查修改?

问题根因

你的三角形合法性校验逻辑错误,三角形的三边需要同时满足任意两边之和大于第三边,你当前代码用的是逻辑或||,只要三个条件有一个满足就会进入合法三角形的判断分支。
比如你输入的100、5、7:100+5>7 是成立的,所以逻辑或整体返回true,直接进入了后续的三角形类型判断,最后走到了不等边三角形的分支,不会触发Not a triangle的输出。

修复方案

把判断三角形合法性的逻辑里的||全部替换为逻辑与&&即可,修改后的代码片段如下:

// 把原来的||全部替换为&&
if ( (integers[0]+integers[2]>integers[1] && integers[2]+integers[1]>integers[0] && integers[1]+integers[0]>integers[2]) ) {
    if ( integers[0] == integers[1] && integers[1] == integers[2]) {
        System.out.println("Triangle is equilateral") ;
    }
    else if ( integers[0] == integers[1] || integers[0] == integers[2] || integers[1] == integers[2]) {
        System.out.println("Triangle is isosceles");
    }
    else  {
        System.out.println("Triangle is scalene");
    }
}
else {
    System.out.println("Not a triangle");
}

可选优化建议

  • 可以先对三边做排序,只需判断较小两边之和大于最大边即可,减少判断条件:
Arrays.sort(integers);
if (integers[0] + integers[1] > integers[2]) {
    // 后续类型判断逻辑
} else {
    System.out.println("Not a triangle");
}
  • 建议新增边长正负数校验,边长为0或负数本身也属于无效三角形。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:07