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
相关产品推荐
相关产品推荐

