gpt4 book ai didi

Java 程序无错误地终止?

转载 作者:行者123 更新时间:2023-12-01 12:59:41 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来查找两个 3 位数字的乘积的最大回文数。这就是我现在所拥有的(我是编程新手):

    int num1 = 0;
int num2 = 0;
int product = 0;
int tempProd1 = 0;
int tempProd2 = 0;
int tempProd3 = 0;
int tempProd4 = 0;
int tempProd5 = 0;
int tempProd6 = 0;
String prodCheck1 = "";
String prodCheck2 = "";

while (num1 < 1000){
while (num2 < 1000){
product = num1 * num2;
prodCheck1 = Integer.toString(product);

tempProd1 = product % 10;
product = product / 10;
tempProd2 = product % 10;
product = product / 10;
tempProd3 = product % 10;
product = product / 10;
tempProd4 = product % 10;
product = product / 10;
tempProd5 = product % 10;
product = product / 10;
tempProd6 = product % 10;
product = product / 10;

prodCheck2 = "tempProd1" + "tempProd2" + "tempProd3" + "tempProd4" + "tempProd5" + "tempProd6";

if (prodCheck1 == prodCheck2){
System.out.println(prodCheck1);
}
num2++;
}
num1++;
}

事情是,每次我尝试运行它时,它都会毫无错误地终止。有人可以解释一下我做错了什么吗?

编辑:谢谢大家,终于解决了。如果有人想知道的话,答案是 853358。

编辑:实际上,号码是 906609。

最佳答案

我立即注意到的一件事是,在内部循环的第一次迭代之后,num2 是 1000,因此内部循环在外部循环的剩余 999 次迭代中将不执行任何操作。您必须将 num2 重置为 0。

还可以考虑使用“for”循环来代替;它们旨在防止此类错误:

for (int num1=0; num1<1000; num1++) {
...
}

另一个问题是回文检查错误。您不能将字符串与 == 进行比较(它测试对象标识,而不是字符串相等性 - 您必须使用 equals() 来代替)。但即使这样也是错误的,因为 prodCheck2 是“tempProd1tempProd2...”并且不包含实际数字。检查回文的最简单方法是:

if (tempProd1 == tempProd6 && tempProd2 == tempProd5 && tempProd3 == tempProd$) {
...
}

关于Java 程序无错误地终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com