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

Python转Java代码报错求助:转换后代码无法正常运行

修复你的Python转Java代码问题

嘿,我帮你排查下这段Python转Java代码的问题,你踩了几个常见的语法和逻辑小坑,咱们一步步来修正:

主要错误点

  • 输入处理完全错了:Java里System.out.print()是用来输出内容的,不是获取输入!你得用Scanner类来读取用户输入,而且要把输入转成整数——顺便说下,原Python代码其实也有这个隐藏问题:直接拿字符串和整数比较,会导致循环永远停不下来。
  • 循环条件语法不对:Java里没有!==这个运算符,整数比较用!=就好,而且得保证i和e都是整数类型,不然类型不匹配直接报错。
  • 逻辑运算符用错了:Java中&是按位与,是给二进制运算用的;逻辑判断得用&&(短路与),这样前面条件不满足时后面的就不用执行了,既高效又符合咱们的逻辑需求。
  • 代码没写完:你写的a = ...没完成字符串拼接逻辑,而且Java里输出得用System.out.println(),不是Python的print。

修正后的完整Java代码

import java.util.Scanner;

public class NumberFinder {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        StringBuilder resultBuilder = new StringBuilder(); // 用StringBuilder比直接+拼接高效多了
        System.out.print("How much? ");
        int target = scanner.nextInt(); // 把输入转成整数,给变量起个更清晰的名字

        while (i != target) {
            // 用&&做逻辑判断,条件和原Python一致
            if (i % 2 == 1 && i % 3 == 1 && i % 4 == 1 && i % 5 == 1 && i % 6 == 1 && i % 7 == 0) {
                resultBuilder.append(i).append(",");
                i++;
                System.out.println(i);
            } else {
                i++;
                System.out.println(i);
            }
        }

        System.out.println("Die Ergebnisse lauten:");
        // 去掉最后多余的逗号,让输出更整洁
        if (resultBuilder.length() > 0) {
            resultBuilder.deleteCharAt(resultBuilder.length() - 1);
        }
        System.out.println(resultBuilder);
        scanner.close();
    }
}

额外优化小细节

  • 用StringBuilder代替字符串直接拼接:Java里字符串是不可变的,每次用+都会生成新对象,循环次数多了性能会很差,StringBuilder就没这问题。
  • 给变量改了个更清晰的名字target:比e好懂,代码可读性更高。
  • 加了去掉末尾逗号的逻辑:避免输出结果最后多一个逗号,看着更舒服。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:56:26