Java 特殊毕达哥拉斯三重态

Java 特殊毕达哥拉斯三重态,java,pythagorean,Java,Pythagorean,我的代码怎么了?当正确答案明显为6,8时,它会打印2,2 public static void main(String[] args) { int a = 1; int b = 1; int answer = 0; int j = 4; while (j == 4) { for (a = 1; a <= 10; a++) { for (b = 1; b <= 10; b++) {

我的代码怎么了?当正确答案明显为6,8时,它会打印2,2

public static void main(String[] args) {

    int a = 1;
    int b = 1;
    int answer = 0;
    int j = 4;
    while (j == 4) {
        for (a = 1; a <= 10; a++) {
            for (b = 1; b <= 10; b++) {
                answer = a * a + b * b;
                if (answer == 100) {
                    j = 10;
                }
            }
        }
    }
    System.out.println(a + " " + b);
}
publicstaticvoidmain(字符串[]args){
INTA=1;
int b=1;
int-answer=0;
int j=4;
而(j==4){
对于(a=1;a
if(答案=100);
在if后面有一个额外的分号

这将导致它执行
j=10;
无论
答案
是否等于
如果(答案==100);
在if后面有一个额外的分号


这将导致它执行
j=10;
无论什么
答案
等于

您同时递增a和b。在您的代码中,这两个数字将始终相等。此外,退出循环时您没有测试匹配。

您同时递增a和b。在您的代码中,这两个数字是相同的s总是相等的。而且,当你退出循环时,你没有测试匹配。

你递增
a
b
的方式,
a
总是等于
b
,所以它们永远不能是6和8。它们将是(1,1)(2,2)等等。是的,但它仍然以递增的方式打印11,11
a
b
a
将始终等于
b
,因此它们永远不可能是6和8。它们将变为(1,1)(2,2)等。是的,但它仍然打印11,11它用于检查while循环是否应该停止或继续,为什么不只是
while(答案!=100)
?它用于检查while循环是否应停止或继续为什么不只是
while(答案!=100)
?我做了一个for循环,将它们分别递增,但它仍然打印11,11删除while循环,将第一个for循环标记为
outer
,并将
j=10
替换为
break outer;
。你的j=10将不会中断内部循环。我做了一个for循环,将它们分别递增,但它仍然打印11,11删除while循环,将第一个循环标记为
outer
,并将
j=10
替换为
break outer;
。您的j=10不会打断内部循环。