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

Java中如何循环执行特定if语句?代码问题求助

解决你的Java条件判断与循环执行问题

嘿,我来帮你梳理下这段代码的问题和改进方向!

首先先点明当前代码存在的两个核心问题:

  • 逻辑分支出错:你现在用了多个独立的if语句,会出现比如输入1时,第一个if输出Circle后,程序还会走到最后一个if (number ==4),因为不满足条件就触发else输出Incorrect Input——这显然不是你想要的结果。
  • 缺少循环逻辑:当前程序只能接收一次输入就结束,没法重复执行判断流程。

改进后的代码示例

这里我调整了代码,解决了上述问题,还增加了主动退出的友好逻辑:

import java.util.Scanner;

public class Main { // 类名首字母大写是Java规范哦
    public static void main(String[] args) {
        int number = 0;
        Scanner input = new Scanner(System.in);
        
        // 用do-while循环实现重复执行,输入0即可退出
        do {
            System.out.print("请输入边数(输入0退出程序):");
            // 先校验输入是否为整数,避免非数字输入导致程序崩溃
            if (input.hasNextInt()) {
                number = input.nextInt();
                
                // 改用if-else if-else链式结构,确保只会执行第一个匹配的分支
                if (number == 1) {
                    System.out.println("Circle");
                } else if (number == 3) {
                    System.out.println("Triangle");
                } else if (number == 4) {
                    System.out.println("Quadrilateral"); // 首字母大写更符合输出规范
                } else if (number != 0) { // 排除退出用的0,其他无效输入才提示错误
                    System.out.println("Incorrect Input");
                }
            } else {
                // 处理非整数输入,同时清空无效的输入内容
                System.out.println("请输入有效的整数!");
                input.next();
            }
        } while (number != 0); // 输入0时终止循环
        
        input.close(); // 关闭Scanner释放资源
        System.out.println("程序已退出");
    }
}

关键改动说明

  1. 链式条件判断:把多个独立if改成if-else if-else结构,程序会从上到下匹配条件,找到第一个符合的分支后就跳过后续所有判断,避免了错误提示重复出现的问题。
  2. do-while循环:用do-while保证程序至少执行一次输入判断,每次循环检查是否输入了0,满足就退出,完美实现重复执行的需求。
  3. 输入合法性校验:新增hasNextInt()判断,防止用户输入非整数导致程序抛出异常,同时给出明确的提示引导。
  4. 代码规范优化:调整类名和输出字符串的大小写,更贴合Java的编码规范。

如果之后你想扩展更多边数的图形判断,或者调整退出逻辑,直接修改对应分支即可!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:54:38