Java 特殊毕达哥拉斯三重态
我的代码怎么了?当正确答案明显为6,8时,它会打印2,2Java 特殊毕达哥拉斯三重态,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++) {
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;aif(答案=100);
在if后面有一个额外的分号
这将导致它执行j=10;
无论答案
是否等于如果(答案==100);
在if后面有一个额外的分号
这将导致它执行j=10;
无论什么答案
等于您同时递增a和b。在您的代码中,这两个数字将始终相等。此外,退出循环时您没有测试匹配。您同时递增a和b。在您的代码中,这两个数字是相同的s总是相等的。而且,当你退出循环时,你没有测试匹配。你递增a
和b
的方式,a
总是等于b
,所以它们永远不能是6和8。它们将是(1,1)(2,2)等等。是的,但它仍然以递增的方式打印11,11a
和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不会打断内部循环。